Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Versteckte Ordner einblenden_ausblenden ? (https://www.delphipraxis.net/70836-versteckte-ordner-einblenden_ausblenden.html)

Vader 5. Jun 2006 15:55


Versteckte Ordner einblenden_ausblenden ?
 
hallo

wenn ich meine versteckten ordner wieder einblenden will, muß ich immer die gleiche prozedure in den explorer und dann auf ordneroptionen usw. durchführen das nervt mich, gibst da irgend einen code dafür, wo ich das mit einen buttonclick ausführen könnte ?
mfg vader

Zacherl 5. Jun 2006 15:57

Re: Versteckte Ordner einblenden_ausblenden ?
 
Extras -> Ordneroptionen -> Ansicht -> Alle Dateien und Ordner anzeigen und danach einfach auf "Für alle übernehmen" klicken.

KingIR 5. Jun 2006 16:04

Re: Versteckte Ordner einblenden_ausblenden ?
 
Unsinn @ FB, das "Für alle übernehmen" gilt für Spalten, Ansicht (Liste, Details, ...), Symbolleisten und so. Nicht für die Einstellungen dadrunter ;)


Zum Problem:
Registry: HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Advanced\Hidden (DWORD-Wert, 2 --> aus, 1 --> an); ohne Gewähr.
Evtl. musst du noch eine Nachricht mit HWND_BROADCAST senden, damit die Änderungen wirksam werden, musst du mal ausprobieren :)

Vader 5. Jun 2006 16:28

Re: Versteckte Ordner einblenden_ausblenden ?
 
ich glaube ihr habt mich falsch verstanden, wie ich das mache im explorer weiß ich
Zitat:

Extras -> Ordneroptionen -> Ansicht -> Alle Dateien und Ordner anzeigen und danach einfach auf "Für alle übernehmen" klicken.
ich möchte das mit delphicode ausführen !!!
mfg vader

Vader 5. Jun 2006 17:22

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo hab da was aber das funktoniert nur teilweise,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var regist: TRegistry;
    begin
      regist := TRegistry.Create;
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',true);
      regist.WriteInteger('Hidden',0);
      regist.free;
    end;


procedure TForm1.Button2Click(Sender: TObject);
var regist: TRegistry;
    begin
      regist := TRegistry.Create;
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',true);
      regist.WriteInteger('Hidden',1);
      regist.free;
    end;
ausblenden geht aber einblenden nicht mehr ?

mfg vader

Olli 5. Jun 2006 17:34

Re: Versteckte Ordner einblenden_ausblenden ?
 
Zitat:

Zitat von Vader
hallo hab da was aber das funktoniert nur teilweise,

[...]

ausblenden geht aber einblenden nicht mehr ?

Wurde oben schon erwähnt
Zitat:

Zitat von KingIR
Evtl. musst du noch eine Nachricht mit HWND_BROADCAST senden, damit die Änderungen wirksam werden, musst du mal ausprobieren :)

Schon ausprobiert?

zer00 5. Jun 2006 17:38

Re: Versteckte Ordner einblenden_ausblenden ?
 
Zitat:

Zitat von KingIR
Unsinn @ FB, das "Für alle übernehmen" gilt für Spalten, Ansicht (Liste, Details, ...), Symbolleisten und so. Nicht für die Einstellungen dadrunter ;)

Da muss ich dir jetzt aber wiedersprechen, die Einstellungen darunter werden auch für alle Ordner übernommen.

grz zer00

Vader 5. Jun 2006 18:04

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo olli

du schreibst
Zitat:

Evtl. musst du noch eine Nachricht mit HWND_BROADCAST senden, damit die Änderungen wirksam werden, musst du mal ausprobieren
wie geht das ?
mfg vader

Olli 5. Jun 2006 18:40

Re: Versteckte Ordner einblenden_ausblenden ?
 
Zitat:

Zitat von Vader
wie geht das ?

Theoretisch über WM_SETTINGSCHANGE (direkt in der DP)

Vader 6. Jun 2006 17:25

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo olli,

hab mir das angeschaut, aber da blicke ich nicht durch wie ich das ausprogrammieren könnte ??
mfg vader

KingIR 6. Jun 2006 17:43

Re: Versteckte Ordner einblenden_ausblenden ?
 
Zitat:

Zitat von zer00
Zitat:

Zitat von KingIR
Unsinn @ FB, das "Für alle übernehmen" gilt für Spalten, Ansicht (Liste, Details, ...), Symbolleisten und so. Nicht für die Einstellungen dadrunter ;)

Da muss ich dir jetzt aber wiedersprechen, die Einstellungen darunter werden auch für alle Ordner übernommen.

grz zer00

Naja, das sind aber zwei verschiedene Paar Schuhe. Der "Für alle übernehmen" Button hat erstmal *nichts* mit den Einstellungen dadrunter zu tun. (Obwohl die natürlich auch für alle Ordner gelten).

@OP:
Schau mal, ich hab da 1 und 2 als Werte für den Registry-Eintrag angegeben, du verwendest aber 0 und 1 :P

Vader 6. Jun 2006 18:12

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo KingIR


das mit 1 und 2 habe ich schon erledigt geht trotzdem nicht, brauche das
Zitat:

Evtl. musst du noch eine Nachricht mit HWND_BROADCAST senden, damit die Änderungen wirksam werden, musst du mal ausprobieren
aber da blicke ich nicht durch wie das geht ?
mfg vader

KingIR 6. Jun 2006 18:54

Re: Versteckte Ordner einblenden_ausblenden ?
 
Oh, ok :)

Eigentlich sollte dann folgende Zeile reichen (einfügen nachdem der Registry-Wert gespeichert wurde):
Delphi-Quellcode:
Windows.SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
:drunken:

Vader 6. Jun 2006 19:15

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo

hab das so probiert, " ausblenden "

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var regist: TRegistry;
    begin
      regist := TRegistry.Create;
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',true);
      regist.WriteInteger('Hidden',2);
      Windows.SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
      regist.free;
    end;

geht aber nicht !!

mfg vader

Vader 7. Jun 2006 17:42

Re: Versteckte Ordner einblenden_ausblenden ?
 
warum funktioniert dieser code nicht ?
mfg vader

Vader 9. Jun 2006 10:31

Re: Versteckte Ordner einblenden_ausblenden ?
 
hat keiner einen rat, warum dieser code nicht funktioniert ?

versteckte ordner ausblenden !

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var regist: TRegistry;
    begin
      regist := TRegistry.Create;
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',true);
      regist.WriteInteger('Hidden',2);
      Windows.SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
      regist.free;
    end;
mfg vader

Trödel 9. Jun 2006 11:28

Re: Versteckte Ordner einblenden_ausblenden ?
 
Der Code funktioniert einwandfrei. Nur der Explorer interessiert sich nicht für diese Einstellung, es sei denn Du liest die Registry neu ein.

Vader 9. Jun 2006 12:37

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo,

Zitat:

es sei denn Du liest die Registry neu ein
und wie geht das ?
mfg vader

marabu 9. Jun 2006 13:36

Re: Versteckte Ordner einblenden_ausblenden ?
 
Hallo.

Warum die Registry neu einlesen, wenn der Windows Explorer seine Anzeige aktualisieren soll? Bei mir geht das:

Delphi-Quellcode:
procedure ShowHiddenFiles(enabled: Boolean);
const
  REG_KEY = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced';
begin
  with TRegistry.Create do
  begin
    LazyWrite := false;
    if OpenKey(REG_KEY, False) then
    begin
      WriteInteger('Hidden', 2 - Ord(enabled));
      CloseKey;
    end;
    Free;
  end;
  SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar(REG_KEY)));
end;
Allerdings muss man danach das Aktualisierungszeitintervall des Explorers abwarten oder selbst aktualisieren.

Grüße vom marabu

Vader 9. Jun 2006 16:11

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo marabu,

muß ich deine procedure ShowHiddenFiles(enabled: Boolean); noch extra aufrufen

wie zb. mit
Delphi-Quellcode:
ShowHiddenFiles(true);
oder kann ich deinen code in ein buttonclickereigniss schreiben ?

mfg vader

marabu 9. Jun 2006 16:37

Re: Versteckte Ordner einblenden_ausblenden ?
 
Hallo Vader,

in den event handler gehört nur der Code zur Ablaufsteuerung. Die eigentliche Funktionalität kapselt man in externen Funktionen. Dieses Vorgehen (best practice) erhöht die Wartbarkeit der Programme, aber du kannst es ruhig machen wie es dir gefällt.

Freundliche Grüße vom marabu

Vader 9. Jun 2006 16:46

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo marabu,

ich weiß nicht warum das bei mir nicht geht ???

Delphi-Quellcode:
procedure ShowHiddenFiles(enabled: Boolean);
const
  REG_KEY = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced';
begin
  with TRegistry.Create do
  begin
    LazyWrite := false;
    if OpenKey(REG_KEY, False) then
    begin
      WriteInteger('Hidden', 2 - Ord(enabled));
      CloseKey;
    end;
    Free;
  end;
  SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar(REG_KEY)));
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
ShowHiddenFiles(true);
end;

mfg vader

marabu 9. Jun 2006 16:54

Re: Versteckte Ordner einblenden_ausblenden ?
 
Wie prüfst du denn den Erfolg deiner Bemühungen?

marabu

Vader 9. Jun 2006 19:16

Re: Versteckte Ordner einblenden_ausblenden ?
 
hallo,
wie meinst du das marabu ?
mfg vader

marabu 9. Jun 2006 19:20

Re: Versteckte Ordner einblenden_ausblenden ?
 
Du schreibst, dass es bei dir nicht geht. Woran merkst du das?

marabu

Vader 9. Jun 2006 21:03

Re: Versteckte Ordner einblenden_ausblenden ?
 
ja wenn ich den code ausführe, und dann den explorer öffne und nachschaue ob die versteckten ordner weg sind !
und die sind nicht weg !
mfg vader

marabu 9. Jun 2006 21:10

Re: Versteckte Ordner einblenden_ausblenden ?
 
Im Zweifelsfall musst du nach der Umschaltung des Flags in der Registry ein paarmal die Anzeige des Explorers über den Menüpunkt Ansicht - Aktualisieren neu aufbauen. Der Explorer reagiert nicht sofort auf diese Umstellung, obwohl der Broadcast abgesetzt wird. Zumindest in der Registry sollte das Flag geändert werden, was du in einem gleichzeitig geöffneten RegEdit-Fenster verfolgen kannst - auch hier nach dem Aktualisieren.

marabu

Vader 9. Jun 2006 21:58

Re: Versteckte Ordner einblenden_ausblenden ?
 
trotz aktualisieren geht es nicht, aber wenn es mit aktualisieren ginge wäre es schon wieder umständlich,ich wollte
das mit einen buttonclick erledigen !!
mfg vader

Trödel 9. Jun 2006 22:43

Re: Versteckte Ordner einblenden_ausblenden ?
 
Es funktioniert. Glaub es, nur der Explorer braucht nach dem öffnen komischerweise ca 1 Min, bis er die Änderung mit bekommt. Taste F5 hilft da auch nicht weiter, jedenfalls bei mir nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz