0

LButton の直後に RButton をドロップするアプリケーションを実行しています。解決策は、次のようなものを実行することです

~LButton::                    ; pass through, set A_PriorHotkey
return

#If A_PriorHotkey = LButton && A_TimeSincePriorHotkey < minDelay
RButton:: 

しかし、最後の行と次の行を書くのに運がなかったので、#IF が false の場合は通常の MButton ダウンと RButton アップが送信され、#IF が true の場合は約 100 ミリ秒遅れてから RButton ダウンと RButton アップが送信されます。 .

前もって感謝します。

4

2 に答える 2

1

これが機能するはずのソリューションです。少しテストしたところ、100%の確率で機能するはずです。使用する場合は、単にコピーして貼り付けるのではなく、コードが何をするかを理解するようにしてください。

基本的には、特定の時間 (この場合は 1000 ミリ秒 -> IGNORE_TIME) に達するまで左クリックで時間を計り、その間は右クリックを無視し、時間が経過すると右クリックが再びアクティブになります。

global IGNORE_TIME := 1000  ; ignore for 1000 miliseconds, change only this if you wan't different times
global starttime := 0


~LButton::
    SetTimer, DelayRButton_r ,Off
    starttime := 25
    SetTimer, DelayRButton_r ,25
    tooltip,leftbutton    ; debug
return


RButton::
    if(starttime > 0)    ; if the left button was pressed IGNORE_TIME ago or less ignore right click
        return
    Send, {RButton}    ; else send right click
    tooltip,rightbutton    ; debug
return


DelayRButton_r:    ; this function runs every 25 ms until it reaches IGNORE_TIME then if sets starttime to 0 and rightclick works again
    starttime += 25
    if( starttime > IGNORE_TIME)
    {
        SetTimer,DelayRButton_r, Off
        starttime := 0
    }
return

また、このコードは特定のアプリケーション/ウィンドウでのみ機能するように簡単に編集できることに注意してください。

于 2013-03-04T19:06:39.327 に答える
0

あなたの説明から、送信アプリケーションを変更できないと思います(つまり、AutoHotKeyスクリプトではなく、コンパイルされたahk.exeかもしれません)

次の方法で AutoHotKey をトリガーできるようになったら、

RButton::
    SoundBeep, 500,500
Return  

このコードを試すことができます:

SetTitleMatchMode = 2

#IfWinActive, Name of your Application
    $RButton::
       if (A_PriorHotkey = "LButton" AND A_TimeSincePriorHotkey < 400)
          Sleep, 1000
       Click, Right
    Return
#IfWinActive

AutoHotKey アイコンを右クリックし、Windows Spy を起動すると、(送信または受信アプリケーションは、その時点でどちらがアクティブかによって異なります) の名前を見つけることができます。Windows Spy がアクティブな状態で、アプリケーションをクリックし、アプリケーションのタイトル (または ahk_class) を確認します。

警告 このコードはテストしていません!

于 2013-03-04T06:28:02.290 に答える