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