The registry sub keys for HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced are:
Hidden
SuperHidden
ShowSuperHidden
HideFileExt
The default values are 2,0,0,1 respectively. To show everything the values would need to be set to 1,1,1,0 respectively.
A more complete function would be: Func ToggleHiddenFiles($ToggleHidden=1,$ToggleSuperHidden=1,$ToggleShowSuperHidden=1,$ToggleFileExt=0)
$RegKey="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
$Hidden=RegRead($RegKey,"Hidden")
$SuperHidden=RegRead($RegKey,"SuperHidden")
$ShowSuperHidden=RegRead($RegKey,"ShowSuperHidden")
$HideFileExt=RegRead($RegKey,"HideFileExt")
If $ToggleHidden=1 Then
If $Hidden=1 Then
RegWrite($RegKey,"Hidden","REG_DWORD",2);=2 hide,=1 show
Else
RegWrite($RegKey,"Hidden","REG_DWORD",1);=2 hide,=1 show
EndIf
EndIf
If $ToggleSuperHidden=1 Then
If $SuperHidden=1 Then
RegWrite($RegKey,"SuperHidden","REG_DWORD",0);=0 hide, 1 show
Else
RegWrite($RegKey,"SuperHidden","REG_DWORD",1);=0 hide, 1 show
EndIf
EndIf
If $ToggleShowSuperHidden=1 Then
If $ShowSuperHidden=1 Then
RegWrite($RegKey,"ShowSuperHidden","REG_DWORD",0);=0 hide, 1 show
Else
RegWrite($RegKey,"ShowSuperHidden","REG_DWORD",1);=0 hide, 1 show
EndIf
EndIf
If $ToggleFileExt=1 Then
If $HideFileExt=1 Then
RegWrite($RegKey,"HideFileExt","REG_DWORD",0);=0 show, 1 hide
Else
RegWrite($RegKey,"HideFileExt","REG_DWORD",1);=0 show, 1 hide
EndIf
EndIf
;Get explorer windows:
Opt("WinTitleMatchMode", 4)
$WinList = WinList("classname=CabinetWClass")
If IsArray($WinList) Then
Local $WinListArr[$WinList[0][0]+1]
For $iW = 1 To $WinList[0][0]
$WinListArr[$iW] = $WinList[$iW][0]
Next
$WinListArr[0] = $WinList[0][0]
;~ Return $WinListArr
Else
;~ Return ""
EndIf
;Update explorers:
$WinExpListArr =$WinListArr
If IsArray($WinExpListArr) Then
For $iWin = 1 To $WinExpListArr[0]
$GetWinState = WinGetState($WinExpListArr[$iWin])
$Hwnd = WinGetHandle($WinExpListArr[$iWin])
DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
Next
EndIf
$Hwnd = WinGetHandle("classname=Progman")
DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
EndFunc
Usage:
Toggle Show All: ToggleHiddenFiles(1,1,1,0)
Toggle Hide All: ToggleHiddenFiles(2,0,0,1)