MouseMenu.ahk:
Code: Select all
#Include, MouseMenuConfig.ahk
FileRead, Code, MouseMenuConfig.ahk
MButton::
Found := False
MouseGetPos, MouseX, MouseY, WinUnderMouse
WinActivate, ahk_id %WinUnderMouse%
WinGetClass, ActiveWinClass, ahk_id %WinUnderMouse%
Loop, Parse, Code, `n, `r
If (InStr(A_LoopField, "MenuFunction" . CommandNameDelimiter . "ahk_class" . SpaceReplacement . ActiveWinClass) = 1)
{
If (Found = False)
{
Gui, MouseMenu: New, -Caption
Gui, MouseMenu: Margin, 0, 0
Found := True
}
Gui, MouseMenu: Add, Button, gButtonClicked, % StrReplace(SubStr(A_LoopField, InStr(A_LoopField, CommandNameDelimiter, , , 2) + StrLen(CommandNameDelimiter), -2), SpaceReplacement, " ")
}
Gui, MouseMenu: Show, X%MouseX% Y%MouseY%
Return
#IfWinActive, ahk_class AutoHotkeyGUI
MButton::
Esc::Gui, MouseMenu: Destroy
ButtonClicked()
{
global SpaceReplacement
global CommandNameDelimiter
global WinUnderMouse
global ActiveWinClass
FunctionToCall := % "MenuFunction" . CommandNameDelimiter . "ahk_class" . SpaceReplacement . ActiveWinClass . CommandNameDelimiter . StrReplace(A_GuiControl, " ", SpaceReplacement)
Gui, Destroy
WinActivate, ahk_id %WinUnderMouse%
%FunctionToCall%()
}
Code: Select all
SpaceReplacement := "___"
CommandNameDelimiter := "_#_"
MenuFunction_#_ahk_class___TTOTAL_CMD_#_Edit___Files()
{
Send, {F4}
}
MenuFunction_#_ahk_class___TTOTAL_CMD_#_Copy___Files()
{
Send, {F5}
}
MenuFunction_#_ahk_class___TTOTAL_CMD_#_Move___Files()
{
Send, {F6}
}
MenuFunction_#_ahk_class___MozillaWindowClass_#_Reload()
{
Send, ^r
}
MenuFunction_#_ahk_class___MozillaWindowClass_#_Next___Tab()
{
Send, ^{Tab}
}
HTH
Roman