3

下面的脚本工作正常。

它每 4 秒向金山软件发送一次鼠标点击。但是当我将计时器长度更改为 -4000 而不是 4000 时,计时器将仅在脚本不再工作一次时运行。我不再能够将鼠标点击发送到金山软件。我究竟做错了什么?

#Persistent
#SingleInstance


SetTimer, CheckApp, 4000
Return


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

1 回答 1

3

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

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

#Persistent
#SingleInstance
SetTimer, CheckApp, 4000
Return

CheckApp:
IfWinActive, ahk_class QWidget
{
    SetTimer, CheckApp, Off    
    Click 486, 15
    Click 570, 93
}
Return

我删除了你的睡眠,2000。添加这个睡眠命令会阻塞 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

不知道为什么要这样做,因为启动应用程序需要一个操作(单击图标或按下快捷方式),这可用于触发脚本。现在你必须不断地在后台运行检查。您可以创建一个看起来像金山软件的图标,但实际上是一个 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
}
Return
于 2013-03-29T08:08:33.253 回答