我对AutoHotkey很新,但是我设法启动我想要的程序并向其发送一个Enter键,但问题是,程序应该只启动一次,如果启动它应该只接收输入键,当我再次按下击键时,它应该只发送输入键。
程序应该保持在后台,并且在收到回车键后不能聚焦。
我的代码:
#n::
Run F:\V..c.exe
Send {enter}
return
答案 0 :(得分:1)
检测是否process exists并启动程序minimized,然后wait for its window出现。
#n::
process, exist, PROGRAM.EXE
if (errorlevel = 0) {
run, d:\program.exe, , min
winwait, ahk_class PROGRAM_WINDOW_CLASS
}
controlSend, , {Enter}, ahk_class PROGRAM_WINDOW_CLASS
;or use the line below
;controlSend, ahk_parent, {Enter}, ahk_class PROGRAM_WINDOW_CLASS
return
将PROGRAM.EXE
替换为程序的可执行文件名,将PROGRAM_WINDOW_CLASS
替换为可在“开始”菜单中的Autohotkey Window Spy实用程序或Autohotkey文件夹(AU3_Spy.exe)中看到的窗口类或者在Autohotkey托盘图标的右键菜单中。
除了最小化运行程序之外,还可以使用SW_SHOWNOACTIVATE
的{{1}}标记,因此您可以将shellExecute
替换为:
run, d:\program,, min
答案 1 :(得分:0)
hasran := false
#n::
if (!hasran) {
Run F:\V..c.exe
hasran := true
}
Send {enter}
return
它不会检查是否存在该窗口,但它只会运行一次该程序。然后你可以导航到该程序,它只会点击回车键。 (如果那个程序不是gui我不认为你可以向它发送关键事件)