Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Обновление проводника Explorer после смены сис. параметров

Ответить
Настройки темы
Обновление проводника Explorer после смены сис. параметров

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Creat0R
Дата: 15-05-2009
Начало обсуждения темы

Цитата Yashied:
_SendMessage(0xFFFF, 0x001D, 0, 0) отправляет сообщение об установке шрифта (WM_FONTCHANGE) всем окнам верхнего уровня (HWND_BROADCAST). »
Интересно, этот Hwnd не может быть использован для обновления сделанных настроек в реестре? К примеру после скрытия расширения файлов (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt)...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:48, 14-05-2009

 

Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Интересно, этот Hwnd не может быть использован для обновления сделанных настроек в реестре? К примеру после скрытия расширения файлов (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt)... »
Это лучше сделать следующим образом:
Код: Выделить весь код
func _UpdateExplorer()

    local $Opt = Opt('WinSearchChildren', 1)
    local $List = WinList('[CLASS:SHELLDLL_DefView]')

    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)

endfunc; _UpdateExplorer
Это было на оф. форуме, ты мог это видеть.

HWND_BROADCAST просто говорит Windows о том, что сообщение должно быть отправлено во все окна независимо от их состояния (SHOW, HIDE, и т.д.).

Последний раз редактировалось Yashied, 17-05-2009 в 19:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 14-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
Это лучше сделать следующим образом: »
Супер!!! Я долго мучался над этим, до сих пор я посылал это-же сообщение всем окнам explorer'а! (включая открытые диалоги типа FileSaveDialog()).

Как оно сделано можно увидеть в утилите Toggle Hidden Files & Files Extension.

P.S
И всё же, лучше вместо значении сообщении использовать сами константы, так будет яснее для всех. Что такое «0x7103»?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:55, 14-05-2009 | #3


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Хорошо.

Global Const $WM_COMMAND = 0x0111
...
DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $List[$i][1], 'int', $WM_COMMAND, "int", 0x7103, 'int', 0)
...

Что такое 0x7103 лучше спросить здесь, но лучше этого не делать.

Отправлено: 00:28, 15-05-2009 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
Что такое 0x7103 лучше спросить здесь»
почитав более поздние комменты валика, я чуть не упал со стула.

Но если серъёзно, он не прав, он просто забыл что такое новичёк! И спросить про сообщение не помешало бы, т.к он сам где то писал что Magic Numbers (a.k.a «литеральные значения констант») использовать неприемлимо, но делать этого я не буду.
Я предпочитаю спрашивать сначала у гугля, и он вроде дал ответ:

Цитата:
Navigate to Menu > 215 > English > on the right pane, select Refresh and it shows 28931, these are some findings that maybe usefull for WM_COMMAND.
Refresh - 28931
Undo - 28699
Paste - 28698
Т.е это попросту идентификатор пункта в меню, и мы его вызываем.

Если покапаться дальше, то это будет работать не во всех системах, там ещё пишут что вроде в Vista нужен уже другой идентфикатор, т.ч это не универсальный метод, нужно вызывать саму комманду, а не исполняющий элемент...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:18, 15-05-2009 | #5


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
там ещё пишут что вроде в Vista нужен уже другой идентфикатор »
В Vista и Windows 7 работает отлично.

Отправлено: 16:35, 15-05-2009 | #6


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


CreatOR, похоже лучше этого способа обновить Windows Explorer никто не знает. На оф. форуме все молчат, ну Вы наверное это уже видели. Меня просто задел этот вопрос, но ответа я так и не нашел. В интернете тоже все много разных решений предлагают. 90% из них не работают или работают, но криво. Вообщем, пока пользуюсь этим. Если у кого нибудь есть идеи, то пожалуйста отпишитесь в этой ветке.

Кстати, там ошибка. Я поправил.

Код: Выделить весь код
for $i = 1 To UBound($List) - 1

Отправлено: 19:36, 17-05-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Обновление проводника Explorer после смены сис. параметров

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Explorer Extensions [Расширения Проводника] ta2i4 Программное обеспечение Windows 1 21-12-2009 22:36
Ошибка - [решено] Перезапуск explorer.exe закрытии проводника KAMCHA Microsoft Windows 2000/XP 7 10-08-2009 13:35
Тормоза в работе ПК после смены видеокарты Illusionist Непонятные проблемы с Железом 22 30-04-2008 09:53
После unattend winxpsp2 - сис. время - 22.10.2000 Jarlaxle Автоматическая установка Windows 2000/XP/2003 2 12-12-2007 01:45
Проблема после смены IP Tilion Сетевые технологии 3 21-12-2005 20:53




 
Переход