AutoHotKey: #IfWinActive. * Explorer *.?в windows 7 - PullRequest
4 голосов
/ 09 декабря 2010

Я пытаюсь создать макрос AutoHotKey, который активен только в Windows Explorer, но я не знаю имя Explorer в Windows 7. Я попробовал следующее:

;Make explorer understand that Ctrl+L means goto location bar (like Firefox / Chrome)
#IfWinActive .* Explorer *.
    ^l::Send {F4}
#IfWinActive

Есть идеи?

Ответы [ 3 ]

13 голосов
/ 09 декабря 2010

Autohotkey поставляется с программой под названием Window Spy.Вы можете использовать его для определения заголовка активного окна.

Также обратите внимание на ahk_class (посмотрите ahk_class в файле справки), который использует тип окна, а не заголовок.Например, в моем случае с Win 7 я могу ограничить горячие клавиши для проводника, указав:

#IfWinActive ahk_class CabinetWClass
3 голосов
/ 08 июля 2011

Похоже, что проводник Windows использует разные классы окон в разное время (например, если поиск отображается или нет - по крайней мере, в Win XP). Этот скрипт соответствует двум классам, которые я видел, и отображает Ctrl - L на «фокус на адресную строку» (ala Firefox) в Explorer:

#IfWinActive ahk_class ExploreWClass
^L::
#IfWinActive ahk_class CabinetWClass
^L::
    Send {F6}
return
#IfWinActive
2 голосов
/ 16 мая 2019

Просто хотел поблагодарить Натана за решение моей проблемы - практически идентичный вопросу Олы здесь.Использовал очень популярный скрипт AHK под названием «Favorite_folders», который отображает меню папок по нажатию средней кнопки.В течение многих лет в XP не возникало проблем - но не удалось заставить скрипт работать в Win7 в окне «Проводник Windows».

Скрипт работал во всех окнах проводника всех программ, но НЕ в простом виде.Окно «Проводник Windows» (как в - Пуск> щелкните правой кнопкой мыши> Откройте Проводник Windows).Потратил более 20 часов, пытаясь решить.

Совет Натана по использованию сценария "#IfWinActive ahk_class CabinetWClass" решил мою проблему.Это привело меня к добавлению следующего сценария в сценарий «Favorite_folders» -

IfWinActive ahk_class CabinetWClass

f_AlwaysShowMenu = y

Очевидно, CabinetWClass ссылается на окно «Проводник Windows» - тогда какExploreWClass относится к окну проводника, которое появляется в различных программах при открытии или сохранении файла.Мне нужно было меню для обеих ситуаций.

В оригинальном сценарии «Favorite_folders» командная строка для разрешения отображения меню «f_Hotkey = ~ MButton» читается - «если f_class в # 32770, ExploreWClass, CabinetWClassДиалог или Проводник ".По неизвестным причинам это позволяет только отображать меню в окне обозревателя программ, но НЕ в обычном окне «Проводник Windows».

Добавив две вышеупомянутые командные строки в исходный скрипт «Favorite_folders», которым я былвозможность отображения меню в обычных окнах «Проводника Windows», но НЕ в окнах проводника программ - та же проблема в обратном порядке.И если я добавлю вторую аналогичную модификацию скрипта для "#IfWinActive ahk_class ExploreWClass" - то ни в одном из окон проводника меню не появится.Сумасшедшие вещи - по моим расчетам.

Таким образом, решение для меня было загрузить две отдельные версии скрипта AHK "Favorite_folders" - 1) неизмененный оригинальный скрипт Favorite_folders;2) отдельный модифицированный оригинальный скрипт Favorite_folders с вставленной в него двухстрочной командой «#IfWinActive ahk_class CabinetWClass», вдохновленной Натаном.СЕЙЧАС - меню появляется в обоих типах окон проводника.Непонятно, ПОЧЕМУ эти сценарии не могут появляться в одном сценарии, но они прекрасно работают как отдельные сценарии.

Итак, ОГРОМНОЕ спасибо Натану и Оле за то, что они подняли и решили эту проблему и мою проблему.

...