130834
Goto Top

Explorer Registry Schlüssel neu laden (Batch)

Hallo liebe Administratoren.

Ich versuche gerade durch eine Batch den Explorer dazu zu bringen die Desktop Icons anzuzeigen oder auszublenden.
Es gibt dafür den Registry Schlüssel

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
DWORD: HideIcons (0 oder 1)

Den man auf 1 setzen kann um die Icons zu verstecken.

Nur wie schaffe ich es das der Explorer den Schlüssel neu einließt?
Den Explorer einfach per
taskkill
abzuschießen scheint mir etwas sehr unelegant und ich hab schon eine Anwendung
gesehen die diese Funktion erfüllt, ohne den Explorer zu beenden, leider ist diese nur timer-basierend und besitzt keinen manuellen Auslöser, damit nutzlos für mich.

Hat da jemand ne Idee?


noch nen schönen Abend,
lg clragon

Content-Key: 369812

Url: https://administrator.de/contentid/369812

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: 135799
135799 31.03.2018 aktualisiert um 08:30:23 Uhr
Goto Top
Das lässt sich machen, nur musst du dazu schon etwas mehr als die Batch bemühen, denn Batch kann von sich aus keine Win32 Funktionen aufrufen, d.h. du müsstest dir also selbst eine Exe dazu schreiben oder Powershell in deine Batch einbetten.
Dein Stichwort zum Desktop/Explorer-Refresh lautet SHChangeNotify
https://stackoverflow.com/questions/26441747/refresh-desktop-vb-net
https://www.codeproject.com/Tips/205472/Change-Registry-Settings-and-Bro ...

Gruß schnuffi
Mitglied: colinardo
colinardo 31.03.2018 aktualisiert um 14:54:44 Uhr
Goto Top
Servus @130834 ,
mit SHChangeNotify wird das in dem Fall eher wenig, da reicht hier für die Desktop-Icons eine WM_COMMAND an den Program Manager zu senden, aber wie schon von Schnuffi gesagt wurde nur mit reinem Batch kommst du da nicht weit. Aber mit etwas Hilfe der Powershell kannst du folgendes direkt in deine Batch schreiben um die Icons ein oder auszublenden (Toggle):
@echo off &setlocal
powershell -Ex ByPass -Command "New-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name HideIcons -Value 0 -Type DWORD -Force; Add-Type -MemberDefinition '[DllImport(\"user32.dll\")]public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport(\"user32.dll\")]public static extern IntPtr GetWindow(IntPtr hWnd, int uCmd);[DllImport(\"user32.dll\")] public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, int lParam);' -Name Win32 -Namespace Tools;$hwnd = [Tools.Win32]::GetWindow([Tools.Win32]::FindWindow('Progman','Program Manager'),5);[Tools.Win32]::SendMessage($hwnd,0x111,0x7402,0)"  

Grüße Uwe
Mitglied: 130834
130834 31.03.2018 um 12:39:33 Uhr
Goto Top
Hallo Uwe
Danke für deinen Lösungs-Vorschlag, scheint mir ganz interessant, irgendwas scheint dabei jedoch falsch zu laufen

screenshot_1
(Nichts passiert, die Konsole spuckt einem endlosen Wasserfall an "0")


lg clragon
Mitglied: colinardo
colinardo 31.03.2018 aktualisiert um 14:55:01 Uhr
Goto Top
Welches OS? Funktioniert hier von Windows 7 bis Windows 10 überall. Installierte PS 3.0 ist Voraussetzung.

-edit- etwas angepasst.
Mitglied: 130834
130834 31.03.2018 um 17:25:26 Uhr
Goto Top
Befinde mich auf einem Windows 10 +
PS C:\Users> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  251
Mitglied: colinardo
colinardo 31.03.2018 um 19:21:24 Uhr
Goto Top
S.o.
Mitglied: 135799
135799 31.03.2018 um 19:28:25 Uhr
Goto Top
Hier geht es ebenso.

Gruß Schnuffi
Mitglied: 130834
130834 03.04.2018 um 18:06:00 Uhr
Goto Top
screenshot_1

Jetzt scheint es keine errors mehr zu werfen, jedoch passiert gar nichts. Der Desktop bleibt wie er ist, egal ob ich für den Wert des Schlüssels 1 oder 0 angebe.

Er nimmt den Wert zwar an; Beim neustarten des explorers verschwinden die Icons / tauchen wieder auf, aber der Explorer wird nicht aktualisiert beim ausführen.

lg clragon
Mitglied: 135799
135799 03.04.2018 um 20:55:19 Uhr
Goto Top
Du sollst den Explorer ja auch nicht neu starten, das macht das Skript ja überflüssig.
Hier klappt das einwandfrei, ändern musst du an den Werten auch nichts, so wie ich das sehe fügt er den Wert nur profilaktisch hinzu, die spätere Funktion "toggelt" die Sichtbarkeit d.h. bei jedem Aufruf wird umgeswitscht, und hier geht das problemlos, muss also bei dir liegen.
Mitglied: 130834
130834 03.04.2018 um 21:01:21 Uhr
Goto Top
Ja das ist soweit korrekt, Ich sollte den explorer nicht neustarten, das habe ich nur gemacht um zu testen ob de Wert gesetzt wurde.

Wurde er. Aber der Explorer macht nichts und der Key wurde nicht neu eingelesen... Vielleicht ist mein Windows kapput?

lg clragon
Mitglied: 130834
130834 13.06.2018 um 17:08:47 Uhr
Goto Top
Frage geschlossen, Danke für die Hilfe, konnte jedoch keine Lösung für mich finden :thinking: