Creat0R
Взял на себя смелость собрать дистрибутив этой проги (выглядит он точно так же), чтобы ты его у себя на сайте обновил. В коде ничего не мнеял. Только опечатки убрал:
Код:

#cs
;~ Toogle Hidden folders and files program - This is AutoIt source code (AutoIt vesrion 3.2.2.0).
;~ Author: G.Sandler a.k.a CreatoR - http://creator-lab.ucoz.ru
;~ ICQ: 5607655
#ce
#NoTrayIcon
$RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
If RegRead($RegKey, "Hidden") = 1 Then
RegWrite($RegKey, "Hidden", "REG_DWORD", 2)
Else
RegWrite($RegKey, "Hidden", "REG_DWORD", 1)
EndIf
UpdateExplorer()
Func _UpdateExplorer()
;Устанавливаем параметр, отвечающий за метод распознавания заголовок окон (4 - самый чувствительный),
;и помещаем в переменную $OldOpt исходное значение этого параметра.
Local $OldOpt = Opt("WinTitleMatchMode", 4)
;Получаем массив, содержащий заголовки окон проводника Windows (включая Рабочего стола), по средствам функции _ExplWinGetList.
Local $WinExpListArr = _ExplWinGetList()
;Если возвратился массив (а значит найдены заголовки окон),
;то перебираем весь массив, с целью обновления каждого окна (по его hWnd из элементов массива).
If IsArray($WinExpListArr) Then
For $iWin = 1 To $WinExpListArr[0]
;Вызов функции для обновления текущего окна
;(по уникальному идентификатору, который содержится в текущем элементе массива).
DllCall("user32.dll", "long", "SendMessage", "hwnd", $WinExpListArr[$iWin], "int", 0x111, "int", 28931, "int", 0)
Next
Else
;Если не вернулся массив (значит не были найдены окна проводника), тогда обновляем только Рабочий стол
;(переменная $WinExpListArr теперь содержит только один уникальный идентификатор Рабочего стола).
DllCall("user32.dll", "long", "SendMessage", "hwnd", $WinExpListArr, "int", 0x111, "int", 28931, "int", 0)
EndIf
;Устанавливаем исходное значение (заданное значение при входе в функцию) параметра,
;отвечающего за метод распознавания заголовок окон.
Opt("WinTitleMatchMode", $OldOpt)
EndFunc
Func _ExplWinGetList()
;Получаем массив, содержащий список существующих заголовок окон проводника Windows (Explorer),
;и их уникальный идентификатор (hWnd).
Local $WinList = WinList("classname=CabinetWClass")
;Если вернулся массив (а значит найдено одно или более окон), тогда делаем перебор по массиву,
;в целях отсеивания только уникальных идентификаторов существующих окон (проводника Windows).
If IsArray($WinList) Then
;Объявляем массив, который будет содержать список уникальных идентификаторов существующих окон.
Local $WinListArr[UBound($WinList)+1]
;Перебираем полученный массив $WinList, и отсеиваем в новый массив $WinListArr
;только уникальные идентификаторы окон Explorer.
For $iW = 1 To $WinList[0][0]
$WinListArr[$iW] = $WinList[$iW][1]
Next
;Присваиваем нулевому элементу нового массива ($WinListArr), значение ровняющееся общему количеству элементов в этом массиве.
$WinListArr[0] = UBound($WinListArr)-1
;Присваиваем последнему элементу этого же массива, уникальный идентификатор (основываясь на "Classname") Рабочего стола.
$WinListArr[$WinListArr[0]] = WinGetHandle("classname=Progman")
;Возвращаем массив, содержащий список идентификаторов всех существующих окон проводника (включая Рабочего стола) и
;общее кол-во элементов в этом массиве
Return $WinListArr
Else
;Если функция WinList() не "вернула" массив (а значит не было найдено окон проводника),
;тогда возвращаем только один уникальный идентификатор Рабочего стола.
Return WinGetHandle("classname=Progman")
EndIf
EndFunc
Вот ссылка:
http://ifolder.ru/1856047
P.S. Единственное, что я не смог изменить, это информацию о файле (вкладка "Версия"). Одна программа при изменении коверкает, другая не хочет сохранять.