Как я могу отформатировать свой Java-код с автоматизацией netbeans ide с помощью autohotkey?

Я хочу отформатировать выбранный код 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». Как я могу исправить эти проблемы?

Как регистрировать все результаты тестов DBT в централизованной таблице snowflake
Как регистрировать все результаты тестов DBT в централизованной таблице snowflake
DBT имеет множество встроенных функций для автоматизации трудоемкой работы. Одной из таких функций является тест DBT.
1
0
105
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я не использую NetBeans, поэтому не могу экспериментировать, но:

  1. Дважды щелкните значок вашего скрипта на панели задач и запустите Window Spy.
    .
  2. Убедитесь, что вы обнаруживаете правильное окно, и вам мощь нужно поэкспериментировать с «SetTitleMatchMode RegEx» и уточнить вашу строку WinTitle, но это может не быть действительно необходимым, поскольку ваш ControlSend, похоже, обнаруживает его правильно. Однако я бы все равно удостоверился.
  3. Возможно, вам также придется использовать альтернативный метод для минимизации окна:
    От WinMinimize:
    PostMessage, 0x112, 0xF020,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE
  4. То, что вы действительно хотите использовать, может быть не WinMinimize, а WinHide.

Есть ли разница между WinMinimize и WinHide?

user70960 02.05.2018 09:11

Конечно. Вы увидите большую разницу, если попробуете.

johnlee 02.05.2018 14:39
Ответ принят как подходящий

Не нужно использовать кавычки, ваш код работать не будет. И при желании можно не использовать запятые.

Этот код отлично работает:

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". Это очень странно.

my-lord 02.05.2018 16:42
ControlSend с ahk_exe у меня работает нормально. Возможно, вам стоит использовать {Ctrl down}{V}{Ctrl up} вместо {^v}. Убедитесь, что вы не используете SendMode Input в своем коде, потому что режим input слишком быстрый, поэтому программа не успеет получить нажатую клавишу. Если это по-прежнему не работает, вы можете установить тайм-аут между ctrl down и v.
user70960 02.05.2018 17:13

Другие вопросы по теме