1

У меня есть скрипт autohotkey, который состоит из двух частей, и кажется, что одна часть заставляет другую перестать работать.

Одна часть отвечает за каждый раз, когда я редактирую скрипт, он перезагружает его на c-s .

Вторая часть, сопоставляет LCtrl с ключом Apps всякий раз, когда я использую ConEmu.

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
If WinActive("script.ahk") {
  $>^s::
    Send >^s
    Sleep, 100
    Reload
  Return
}

#IfWinActive, ahk_class VirtualConsoleClass
{
  LCtrl::AppsKey
}

Если я сохраню переопределение LCtrl -> Apps , автоматическая перезагрузка перестает работать.

Зачем?

2 ответа2

0

Просто чтобы быть уверенным, что вы попробовали следующее, используя #IfWinActive для горячей клавиши script.ahk?

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode, 2 

#IfWinActive script.ahk
$>^s::
Send ^s
Sleep, 100
Reload
Return

#IfWinActive, ahk_class VirtualConsoleClass
LCtrl::AppsKey
0

Основной причиной, по-видимому, является TitleMatchMode.

Дополнительно

if Winactive("script.ahk")

Будет запущен только один раз, это не тот случай, если вы хотите условно включить горячие клавиши, поместите их между # операторами if

Попробуй это:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode,Slow

#IfWinActive, edit.ahk
~$>^s::
    Sleep, 100
    Reload
Return

#IfWinActive, ahk_class VirtualConsoleClass
    LCtrl::AppsKey
#If

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .