下面的脚本运行良好。
它每4秒发送一次鼠标点击到KingSoft编写器。但是,当我将计时器长度改为-4000而不是4000时,计时器将只运行一次,脚本将不再运行一次。我不再能够将鼠标单击发送到KingSoft编写器。我做错了什么?
#Persistent
#SingleInstance
SetTimer, CheckApp, 4000
Return
CheckApp:
IfWinActive, ahk_class QWidget
{
sleep 2000
Click 486, 15
Click 570, 93
}
Return发布于 2013-03-29 16:08:33
在我回答这个问题之前。请您返回到上一个问题,并通过单击白色复选标记将其变为绿色来标记您在那里收到的答案。
我曾经尝试过负值,但对结果不满意,所以我决定总是关闭计时器,而不是使用负值。
#Persistent
#SingleInstance
SetTimer, CheckApp, 4000
Return
CheckApp:
IfWinActive, ahk_class QWidget
{
SetTimer, CheckApp, Off
Click 486, 15
Click 570, 93
}
Return我移除了你的睡眠,2000年。添加此睡眠命令会阻塞ahk 50%的时间(睡眠50%),并且不会增加任何有用的东西。它甚至使得另一个应用程序在这2秒内抢占焦点的可能性更大,所以鼠标点击可能会转移到另一个应用程序……你必须使用鼠标点击还是可以使用键盘快捷键。当菜单移动或扩展/收缩时,鼠标位置往往不可靠。
更新
#Persistent
#SingleInstance
Return ; Prevent the [Win]+w from executing on startup of script.
#w:: ; [Win]+w launches PolyEdit, waits for window and sends two mouse clicks.
Run, path to the PolyEdit window.exe
WinWaitActive, ahk_class QWidget
Sleep, 1000
Click 486, 15
Click 570, 93
Return现在您可以将ahk脚本放在windows的开始菜单中,并通过Win+w (或您定义的任何其他键)启动PolyEdit。
更新2
我不确定为什么要这样做,因为启动应用程序需要一个动作(单击图标或按下快捷键),这可以用来触发脚本。现在,您必须不断地在后台运行检查。您可以创建一个看起来像KingSoft的图标,但实际上是一个ahk脚本。
但这是给你的!
#Persistent
#SingleInstance
SetTimer, CheckApp, 400
Return
InitiateKS := true
CheckApp:
IfWinExist, ahk_class QWidget
{
If InitiateKS
{
InitiateKS := false
WinActivate, ahk_class QWidget
TrayTip, KingSoft, Started, 1
;Click 486, 15
;Click 570, 93
}
}
Else ; if no KingSoft is running
{
InitiateKS := true
}
Returnhttps://stackoverflow.com/questions/15696684
复制相似问题