2017-01-08 10 views
-4

Могу ли я использовать AutoHotkey для создания ярлыка для редактирования файлов сценариев?Быстрый способ открыть файл сценария для редактирования

Я знаю, что вы можете нажать Контекст + E или щелкнуть правой кнопкой мыши и Изменить. То, что было бы быстрее, можно сказать, удерживая Ctrl + Shft и дважды щелкнув файл. Хорошим преимуществом для этого является то, как вы можете удерживать Alt и дважды щелкать файл, чтобы быстро перейти к диалоговому окну Properties. Или удерживая Ctrl + Shft и дважды щелкнув папку, чтобы открыть ее в новом окне.

Это, очевидно, пойти на языковые файлы, такие как АХК, BAT, VBS, REG-файлов и т.д.

ответ

2

Shell.Application.Windows использования, чтобы получить текущий сфокусированный файл в окне проводника (не рабочий стол).

; Alt + single click opens the file in notepad 
~!LButton up::openFilesInEditor() 

openFilesInEditor() { 
    static shellApp := comObjCreate("Shell.Application") 

    mouseGetPos x,y, clickedWindow 
    winGetClass clickedWindowClass, ahk_id %clickedWindow% 
    if (clickedWindowClass != "CabinetWClass") 
     return 

    try { 
     shellWindows := shellApp.Windows() 
     loop % shellWindows.count 
     { 
      win := shellWindows.Item(A_Index-1) 
      if (win.HWND = clickedWindow) { 
       focusedFile := win.Document.FocusedItem.Path 
       run notepad "%focusedFile%" 
       return 
      } 
     } 
    } catch e { 
     ;traytip,,Error %e% 
    } 
} 

Чтобы использовать Edit из контекстного меню заменить run notepad с run *Edit

код был проверен на Windows 7 и 10.

+0

Спасибо за ответ. Я не могу приступить к работе. Может быть, это несовместимость с нашими заголовками? У меня есть '#NoEnv; Рекомендуется для производительности и совместимости с будущими выпусками AutoHotkey. #Warn; Включите предупреждения, помогающие обнаруживать распространенные ошибки. SendMode Input; Рекомендуется для новых скриптов из-за его превосходной скорости и надежности. SetWorkingDir% A_ScriptDir%; Обеспечивает последовательный стартовый каталог. ' – Nathan

+0

@Nathan Вы пытаетесь открыть файл на своем рабочем столе? Код не учитывает это. @wOxxOm Вместо проверки класса окна внутри этой функции вы можете поместить '#IfWinActive ahk_exe explorer.exe' перед горячей клавишей. Это заставит скрипт работать на рабочем столе (по крайней мере, в Win7), а также избегать вызова функции, если не требуется. Кроме того, нет причин продолжать цикл, как только мы найдем окно. – MCL

+0

@MCL, 1) рабочий стол не указан в 'Shell.Application.Windows', так что это не поможет 2) в настоящее время скрипт позволяет alt-click в неактивных окнах Explorer, поэтому ifwinactive не поможет 3) спасибо, добавил' return 'как только окно будет найдено. – wOxxOm

-1

Ctrl + двойной щелчок или Ctrl +Введите делает второй глагол в меню правой кнопки мыши, который для файлов VBS является Edit.

+0

Это не работает в обычной среде Windows. – Nathan