Automation 自动热键:捕捉&;在没有人机交互的情况下操作窗口
一些听起来非常基本的东西花费了很多时间:如何编程一个自动热键脚本来等待一个特定的窗口,然后接受它,Automation 自动热键:捕捉&;在没有人机交互的情况下操作窗口,automation,window,autohotkey,Automation,Window,Autohotkey,一些听起来非常基本的东西花费了很多时间:如何编程一个自动热键脚本来等待一个特定的窗口,然后接受它,Send{enter},关闭它?在这种情况下,每次打开某个程序的特定文件类型时,都会出现一个恼人的设置确认对话框。还有一个小问题是,windows标题每次都会更改,而它的ahn_类则与母程序共享,这是我试图通过按像素大小捕捉窗口来解决的问题: #IfWinActive ahk_class SALFRAME ~LButton:: WinGetActiveStats, , width,
Send{enter}
,关闭它?在这种情况下,每次打开某个程序的特定文件类型时,都会出现一个恼人的设置确认对话框。还有一个小问题是,windows标题每次都会更改,而它的ahn_类
则与母程序共享,这是我试图通过按像素大小捕捉窗口来解决的问题:
#IfWinActive ahk_class SALFRAME
~LButton::
WinGetActiveStats, , width, , ,
if (width = "681") {
Send {enter}
}
return
这是可行的,但是当对话出现时,它会强制点击对话的某个地方,这比以前更快,但仍然不是真正的自动化。我还尝试了WinWaitActive
,但它似乎没有捕获窗口(在某些时候,我尝试编写的一些脚本实际上在脚本执行时杀死了窗口,但只有一次,没有触及脚本首次运行后的后续窗口)。在没有人工输入的情况下,使用自动热键等待和终止某些窗口的正确方法是什么
WinWaitActive是最好的方式。您只能找到一个WinWaitActive接受并对所有此类窗口保持相同属性的窗口。请注意
发送\u输入\u到特定\u窗口中的最后一个
。非常感谢。周期为50毫秒是什么意思?更正,谢谢!脚本每50毫秒检查一次特定窗口是否存在并处于活动状态。如果省略,则默认为250毫秒。
#Persistent
SetTimer, Send_Enter_to_specific_window, 50
return
Send_Enter_to_specific_window:
IfWinActive ahk_class SALFRAME
{
WinGetPos,,, width,, A
if (width = "681")
Send {enter}
}
return