Autohotkey 右键控制单击工具栏Window321自动热键

Autohotkey 右键控制单击工具栏Window321自动热键,autohotkey,right-click,trayicon,Autohotkey,Right Click,Trayicon,我对自动热键很陌生,目前我对ControlClick有一个误解 我的目标是用控件单击右键单击工具栏窗口321上的图标,以显示上下文菜单。我不想使用单击或发送,因为在会话锁定时可以执行操作 我在网上搜索了一会儿,尝试了几种方法 ControlClick,,ahk_class Shell_TrayWnd,,R,NA x1500 y22 如果我想使用工具栏的下拉菜单,这个功能就可以了。事实并非如此 我试过这样的方法: ControlClick,ToolbarWindow321,ahk_class S

我对自动热键很陌生,目前我对ControlClick有一个误解

我的目标是用控件单击右键单击工具栏窗口321上的图标,以显示上下文菜单。我不想使用单击或发送,因为在会话锁定时可以执行操作

我在网上搜索了一会儿,尝试了几种方法

ControlClick,,ahk_class Shell_TrayWnd,,R,NA x1500 y22
如果我想使用工具栏的下拉菜单,这个功能就可以了。事实并非如此

我试过这样的方法:

ControlClick,ToolbarWindow321,ahk_class Shell_TrayWnd,,Right,1,NA x1500 y22
但什么也没有显示。我尝试了几个坐标,并使用AutoIt3 spy确定了图标的位置

我肯定我做错了什么(当然,否则它会工作得很好:)
有人知道我必须做什么才能让它工作吗?

我写了一些代码,在记事本的“另存为”窗口中单击桌面按钮。 在Windows XP版本的记事本上,这是一个工具栏Window32控件。 代码使用Acc库中的函数,您可以将这些函数放在脚本的Lib文件夹中

Acc库[AHK_L](2012年9月27日更新)-脚本和函数-自动热键社区

编辑:在您的特定情况下,accDoDefaultAction可能与右键单击不对应

作为参考,我的脚本在Windows XP和7上都能工作:

^q:: ;notepad (save as) - click Desktop button
^d:: ;notepad (save as) - click Desktop button
WinGet, hWnd, ID, A
hCtl := ""

if !hCtl ;check for treeview e.g. Win 7
{
ControlGet, hCtl, Hwnd, , SysTreeView321, ahk_id %hWnd%
if hCtl
oAcc := Acc_Get("Object", "outline", 0, "ahk_id " hCtl)
}

if !hCtl ;check for toolbar e.g. Win XP
{
ControlGet, hCtl, Hwnd, , ToolbarWindow322, ahk_id %hWnd%
if hCtl
oAcc := Acc_Get("Object", "tool_bar", 0, "ahk_id " hCtl)
}

Loop, % oAcc.accChildCount
if (oAcc.accName(A_Index) = "Desktop")
if (1, oAcc.accDoDefaultAction(A_Index))
break

Return

这个问题看起来可能是一个相对琐碎的问题,一个“阅读手册”的问题,但我记得自己也有问题。 可以说,底部的方法应该像上面的方法一样工作,但事实并非如此

;notepad save as (windows xp version) left-click Desktop button)
ControlClick, ToolbarWindow322, A, , , , NA x40 y100

;taskbar (windows 7) right-click taskbar button
ControlClick, x260 y20, ahk_class Shell_TrayWnd, , R
ControlClick, x260 y20, ahk_class Shell_TrayWnd, , R, NA

;taskbar (windows 7) right-click taskbar button (DIDN'T WORK)
;(clicked the wrong part of the taskbar, at the far right I believe)
ControlClick, , ahk_class Shell_TrayWnd, , R, x260 y20
ControlClick, , ahk_class Shell_TrayWnd, , R, NA x260 y20
关于代码的注释:

这种形式对我也不起作用:

ControlClick,,ahk_class Shell_TrayWnd,,R,NA x1500 y22
我相信:

ControlClick,ToolbarWindow321,ahk_class Shell_TrayWnd,,Right,1,NA x1500 y22
应该是这样的:

ControlClick,ToolbarWindow321,ahk_class Shell_TrayWnd,,Right,NA x1500 y22
删除“1”后

进一步说明:


您可以使用Acc识别按钮的坐标,然后使用ControlClick右键单击按钮。

这几乎是不可重建的。要单击哪个图标以及什么是
工具栏窗口321
?谁能帮助你呢?
ControlClick,ToolbarWindow321,ahk_class Shell_TrayWnd,,Right,NA x1500 y22