1

我是 windows8 用户,我试图仅在 Irfanview(图片查看器应用程序)内切换左右按钮,因为默认平移始终是鼠标左按钮,但在 irfan 视图中是鼠标右键,所以我想每当我按住左鼠标按钮,它发送按住鼠标右键。我试过这个宏:它在 Irfanview 中工作,但也会影响 Windows 桌面,有时也会影响其他一些程序。

#NoEnv
#SingleInstance, Force
#Persistent
#InstallMouseHook

#ifWinActive ahk_class IrfanView
LButton::RButton
RButton::LButton

#IfWinActive ahk_class FullScreenClass
LButton::RButton
RButton::LButton

有人可以给我一些建议,也许是有条件的?

谢谢先进。

4

1 回答 1

1

您看到的行为很可能是由于您选择的一个窗口已激活,并且您正试图单击另一个窗口。

解决这个问题的方法是让你的热键使用鼠标所在的窗口类而不是活动窗口。我在下面包含了一个函数以及如何使用它:

#If (MouseIsOverClass("IrfanView") or MouseIsOverClass("FullScreenClass")) and !MouseIsOverControl("IrfanViewerClass1")
    LButton::RButton
    RButton::LButton

MouseIsOverClass(WinClass) 
{
    MouseGetPos,,,win
    WinGetClass,class,ahk_id %win%
    return (class = winClass)
}

MouseIsOverControl(winControl)
{
    MouseGetPos, , , , Control
    return (Control = winControl)
}

编辑:请注意,#If仅在 AHK_L 中受支持。

文档

于 2013-08-13T14:04:29.377 回答