首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计时器只运行一次

计时器只运行一次
EN

Stack Overflow用户
提问于 2013-03-29 11:02:38
回答 1查看 2K关注 0票数 3

下面的脚本运行良好。

它每4秒发送一次鼠标点击到KingSoft编写器。但是,当我将计时器长度改为-4000而不是4000时,计时器将只运行一次,脚本将不再运行一次。我不再能够将鼠标单击发送到KingSoft编写器。我做错了什么?

代码语言:javascript
复制
#Persistent
#SingleInstance


SetTimer, CheckApp, 4000
Return


CheckApp:
IfWinActive, ahk_class QWidget
{
    sleep 2000
Click 486, 15
Click 570, 93
}
Return
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 16:08:33

在我回答这个问题之前。请您返回到上一个问题,并通过单击白色复选标记将其变为绿色来标记您在那里收到的答案。

我曾经尝试过负值,但对结果不满意,所以我决定总是关闭计时器,而不是使用负值。

代码语言:javascript
复制
#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秒内抢占焦点的可能性更大,所以鼠标点击可能会转移到另一个应用程序……你必须使用鼠标点击还是可以使用键盘快捷键。当菜单移动或扩展/收缩时,鼠标位置往往不可靠。

更新

代码语言:javascript
复制
#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脚本。

但这是给你的!

代码语言:javascript
复制
#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
}
Return
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15696684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档