3

以下のスクリプトは正常に動作します。

マウス クリックを 4 秒ごとに KingSoft Writer に送信します。しかし、タイマーの長さを 4000 ではなく -4000 に変更すると、タイマーが 1 回だけ実行されるようになり、スクリプトが 1 回も機能しなくなります。KingSoft Writer にマウス クリックを送信できなくなりました。私は何を間違っていますか?

#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

あなたの Sleep, 2000 を削除しました。この sleep コマンドを追加すると、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

これで、Windows のスタート メニューに ahk スクリプトを配置し、[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
}
Return
于 2013-03-29T08:08:33.253 に答える