0

我有一个应用程序(Royal TS),它在应用程序的主窗口中嵌入了 PuTTY 会话。但是,如果另一个应用程序的窗口遮挡了嵌入式 PuTTY 会话,并且我单击嵌入式 PuTTY 会话,则 Royal TS 窗口不会出现在最前面。

因此,我尝试使用以下 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                                ;

这工作正常......在一定程度上。当我尝试单击并按住任何应用程序的标题栏以拖动它(或调整应用程序窗口的大小)时,会出现问题,脚本运行并拦截我的左键,但由于向脚本的结尾。

如何区分左键单击和左键单击并拖动操作?

4

1 回答 1

0

更改您的LButton::to~LButton::并删除该else语句。

~将使鼠标左键像往常一样工作,但仍会运行代码。

于 2013-03-25T15:43:11.553 回答