0

アプリケーションのメインウィンドウ内にPuTTYセッションを埋め込むアプリケーション(Royal TS)があります。ただし、別のアプリケーションのウィンドウが埋め込みPuTTYセッションを覆い隠している場合、埋め込みPuTTYセッションをクリックすると、RoyalTSウィンドウが前面に表示されません

そこで、次のAutoHotKeyスクリプトを使用してこれを解決しようとしました。

LButton::                             ; Detect left mouse button click
MouseGetPos, xpos, ypos, win_id       ; Get mouse position and window ID 
WinGetTitle, title, ahk_id %win_id%   ; Get window title
WinGetClass, class, ahk_id %win_id%   ; Get window class

if class=PuTTY                        ; If clicked in an emmbeded PuTTY window...
{                                     ;
  IfWinExist, Royal TS                ; ...and Royal TS is running...
  {                                   ;
    WinActivate                       ; ...bring Royal TS to the front
  }                                   ;
}                                     ;
else                                  ; Else, it wasn't a PuTTY window clicked...
{                                     ;
  MouseClick, left, xpos, ypos        ; ...just pass mouse button click through
}                                     ;
return                                ;

これは正常に機能します...ある程度まで。この問題は、アプリケーションのタイトルバーをクリックして押したままドラッグ(またはアプリケーションのウィンドウのサイズ変更)しようとするとスクリプトが実行されて左ボタンがインターセプトされますが、MouseClickコマンドがスクリプトの終わり。

左クリックと左クリックおよびドラッグアクションをどのように区別できますか?

4

1 に答える 1

0

に変更LButton::し、ステートメント~LButton::を削除します。else

~マウスの左ボタンは通常どおり機能しますが、コードは実行されます。

于 2013-03-25T15:43:11.553 に答える