24.10.2016, 02:03
|
#20
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Регистр в именах файлов Windows
Сообщение от RegIon
Бывает так, что хоть 550 раз обновляй, но пока не выйдешь из системы - статус файлов не измениться.
|
А если так?
Local $Opt = Opt('WinSearchChildren', 1)
Local $List = WinList('[CLASS:SHELLDLL_DefView]')
Const $WM_SETTINGCHANGE = 0x001A
Const $HWNDBROADCAST = 0xFFFF
Const $szParam = "Environment"
Const $SHCNE_ASSOCCHANGED = 0x08000000
Const $SHCNF_IDLIST = 0
For $i = 1 To UBound($List) - 1
DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $List[$i][1], 'int', 0x0111, 'int', 0x7103, 'int', 0)
Next
Opt('WinSearchChildren', $Opt)
EnvUpdate()
DllCall("user32.dll", "int", "SendMessage", _
"hwnd", $HWNDBROADCAST, _
"int", $WM_SETTINGCHANGE, _
"int", 0, _
"int", $szParam)
Run("rundll32 user32.dll,UpdatePerUserSystemParameters")
DllCall('shell32.dll', 'none', 'SHChangeNotify', 'long', $SHCNE_ASSOCCHANGED, 'uint', $SHCNF_IDLIST, 'ptr', 0, 'ptr', 0)
Писал для того, чтобы изменения в реестре (скрытие локальных дисков) вступали в силу без выхода из системы. Скомпиленый файл во вложении, если уж совсем из системы не хочется выходить, просто запустите. Обновляет тремя разными способами. Вряд ли баг устоит.
|
(Offline)
|
|