Как запретить AHK открывать повторяющееся окно? - PullRequest
0 голосов
/ 20 июня 2020

В AutoHotKey я создал сценарий, который запускается при загрузке и вызывает сценарий «Productivity.ahk» всякий раз, когда я нажимаю ctrl + p. «Productivity.ahk» открывает для меня windows с Todoist и Toggl. Этот код работает отлично.

; Toggl
Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe"  --profile-directory=Default --app-id=emhlbipdbnglohkhcmimglnngjlfoehc

; Todoist
Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe"  --profile-directory=Default --app-id=geflgmhlcjjamienpgojogcbpjddhcme


WinWait, Toggl
WinRestore,
WinMove, , , 803, 0, 1126, 1080

WinWait, Todoist
WinRestore,
WinMove, , , -7, 0, 826, 1080

return

Однако я бы хотел, чтобы сценарий сначала проверил, может ли уже быть открыт более старый экземпляр этих windows. Я пытался добиться этого с помощью выражений «if» и «else», но это не сработало. В любом случае он по-прежнему открывает новые экземпляры. Есть ли кто-нибудь, кто знает, почему он ведет себя не так, как я ожидал?

; Todoist
if WinExist, Todoist
{
    WinWait, Todoist
    WinRestore,
    WinMove, , , -7, 0, 826, 1080
}
else 
{
    Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe"  --profile-directory=Default --app-id=geflgmhlcjjamienpgojogcbpjddhcme
    WinWait, Todoist
    WinRestore,
    WinMove, , , -7, 0, 826, 1080
}


; Toggl
if WinExist, Toggl
{
    WinWait, Toggl
    WinRestore,
    WinMove, , , 803, 0, 1126, 1080
}
else 
{
    Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe"  --profile-directory=Default --app-id=emhlbipdbnglohkhcmimglnngjlfoehc
    WinWait, Toggl
    WinRestore,
    WinMove, , , 803, 0, 1126, 1080
}

return

Ответы [ 2 ]

0 голосов
/ 24 июня 2020

Я согласен с Smile, похоже, что заголовок окна указан неправильно. По крайней мере, мне это кажется неправильным. Вы запускаете Chrome и вызываете заголовок окна с именами «Toggl» и «Todoist»

Окно, вероятно, будет в формате: имя вкладки браузера - заголовок сайта - Google Chrome, поэтому для этой страницы StackOverflow URL-адрес выглядит так: autohotkey - Как предотвратить открытие дублирующегося окна AHK? - Переполнение стека - Google Chrome

Щелкните правой кнопкой мыши сценарий на панели задач и выберите> шпион окна. Затем выберите программу, которую вы хотите обнаружить sh. Он будет содержать необходимую информацию. Оконный шпион

0 голосов
/ 21 июня 2020

Если вы хотите использовать старый синтаксис WinExist , не добавляйте пробел после , если

Правильно: ifWinExist, Todoist.

Также проверьте, правильно ли вы используете имя окна, я предлагаю вам использовать Windows Spy , чтобы получить заголовок этого окна или убедиться, что вы используете правильный заголовок.

Windows Утилита Spy должна быть найдена в каталоге установки AutoHotkey.

...