アプリケーションのメインウィンドウ内に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コマンドがスクリプトの終わり。
左クリックと左クリックおよびドラッグアクションをどのように区別できますか?