Показать сообщение отдельно
Старый 24.10.2016, 02:03   #20
DarkInside
Разработчик
 
Аватар для DarkInside
 
Регистрация: 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)

Писал для того, чтобы изменения в реестре (скрытие локальных дисков) вступали в силу без выхода из системы. Скомпиленый файл во вложении, если уж совсем из системы не хочется выходить, просто запустите. Обновляет тремя разными способами. Вряд ли баг устоит.
Вложения
Тип файла: exe Upd_explorer.exe (838.0 Кб, 1027 просмотров)
(Offline)
 
Ответить с цитированием