Я хочу отформатировать выбранный код Java с отправкой ключей в скрытую среду IDE NetBeans. Я написал следующий сценарий
^+b::
sleep 30
Send ^c
sleep 30
run,C:\Program Files\NetBeans 8.2\bin\netbeans64.exe "C:\sample.java",Hide
sleep 1500
ControlSend,,{^v}, "Netbeans"
sleep 50
ControlSend,,{!+f}, "Netbeans"
sleep 50
ControlSend,,{^a}, "Netbeans"
sleep 50
ControlSend,,{^c}, "Netbeans"
sleep 50
WinMinimize,"Netbeans"
sleep 100
Send, ^v
return
Но при попытке отправить ключи с помощью ControlSend появляется скрытый NetBeans, и я не могу свернуть окно Netbeans с помощью WinMinimize, «Netbeans». Как я могу исправить эти проблемы?
Я не использую NetBeans, поэтому не могу экспериментировать, но:
ControlSend
, похоже, обнаруживает его правильно. Однако я бы все равно удостоверился.
PostMessage, 0x112, 0xF020,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE
WinMinimize
, а WinHide
.Конечно. Вы увидите большую разницу, если попробуете.
Не нужно использовать кавычки, ваш код работать не будет. И при желании можно не использовать запятые.
Этот код отлично работает:
WinMinimize Netbeans
; WinMinimize, Netbeans ; this will work too
Использование с запятыми:
WinMinimize % "Netbeans"
Но поскольку некоторые программы используют имя динамического окна, вам лучше минимизировать программы по имени процесса:
WinMinimize, ahk_exe netbeans.exe
Также вы можете просто свернуть активное окно:
WinMinimize A
Подробнее: https://autohotkey.com/docs/misc/WinTitle.htm
Большое спасибо. "WinMinimize, ahk_exe netbeans64.exe" работает правильно. Но ControlSend не работает с "ahk_exe netbeans64.exe". Это очень странно.
ControlSend
с ahk_exe
у меня работает нормально. Возможно, вам стоит использовать {Ctrl down}{V}{Ctrl up}
вместо {^v}
. Убедитесь, что вы не используете SendMode Input
в своем коде, потому что режим input
слишком быстрый, поэтому программа не успеет получить нажатую клавишу. Если это по-прежнему не работает, вы можете установить тайм-аут между ctrl down
и v
.
Есть ли разница между
WinMinimize
иWinHide
?