如何模拟操作托盘程序图标?[已解决]
本帖最后由 cashiba 于 2017-3-18 09:31 编辑有些程序,比喻杀毒软件等,平时以图标形式常驻系统托盘中,左键或右键点击该图标,会弹出项目丰富的菜单而不是直接打开主界面。
有时不必要打开主界面,而直接通过上述弹出菜单选择需要的项目执行...
请问
这类最小化到托盘的程序,如何模拟(右键或左键)点击该程序的托盘图标,再在弹出的菜单中点击某项目?
以A大的函数询捕为例,如下图,如何实现:右键点击图标--->在弹出菜单中接着点击<关于>?
最好是能实现后台点击,总觉得通过前台鼠标定位点击的方法有些笨拙
下面是某杀毒软件的弹出菜单:
看帮助啊。托盘右键菜单
#NoTrayIcon
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> ; $TRAY_CHECKED 与 $TRAY_ICONSTATE_SHOW 常量定义文件.
Opt("TrayMenuMode", 3) ; 默认托盘菜单项目将不会显示, 当选定项目时也不检查. TrayMenuMode 的其它选项为 1, 2.
Example()
Func Example()
; 选择单选项目参数创建一个托盘项目.
TrayCreateItem("单选框 1", -1, -1, $TRAY_ITEM_RADIO)
TrayItemSetState(-1, $TRAY_CHECKED)
TrayCreateItem("单选框 2", -1, -1, $TRAY_ITEM_RADIO)
TrayCreateItem("单选框 3", -1, -1, $TRAY_ITEM_RADIO)
TrayCreateItem("") ; 创建分隔线.
Local $idAbout = TrayCreateItem("关于...")
TrayCreateItem("") ; 创建分隔线.
Local $idExit = TrayCreateItem("退出")
TraySetState($TRAY_ICONSTATE_SHOW) ; 显示托盘菜单.
While 1
Switch TrayGetMsg()
Case $idAbout ; 显示一个有关 AutoIt 版本和可执行文件安装路径的消息框.
MsgBox($MB_SYSTEMMODAL, "", "AutoIt 托盘菜单示例." & @CRLF & @CRLF & _
"AutoIt 版本: " & @AutoItVersion & @CRLF & _
"安装路径: " & StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1)) ; 查找完整路径的文件夹.
Case $idExit ; 退出循环.
ExitLoop
EndSwitch
WEnd
EndFunc ;==>Example
看帮助啊。托盘右键菜单
229989799 发表于 2016-12-16 13:36 http://www.autoitx.com/images/common/back.gif
我不是问怎么创建托盘菜单,而是怎么用AU3自动选择执行第三方程序的托盘菜单及其项目.... 不靠鼠标点,难啊,除非软件开发的时候就给你留有接口.
cmdline,hotkey之类.
还是看软件了, 以下虽然是小问题,但是也令人困扰哎
1、杀毒软件常常会不定时弹出消息界面,挡住目标窗口,影响操作。调出托盘杀软的右键菜单后,如何选择退出这个按钮或项目呢?
也就是如何定位并选择快捷菜单里面的项目的问题
2、输入法的悬浮窗口常常也会挡住目标窗口,并且常常自动切换到中文输入法
如何根据输入法状态使之自动切换保持英文输入状态呢?
也就是自动识别输入法状态并予以操控的问题
以上都是在其它电脑上使用AU3程序。要保持其它电脑的使用习惯或常态的前提下,想通过AU3临时改变到适合AU3小程序正常运行的状态,
所需要解决的小问题..... http://www.autoitx.com/thread-4501-1-10.html
heroxianf 发表于 2016-12-18 22:19 http://www.autoitx.com/images/common/back.gif
这个函数可以准确点击托盘图标调出快捷菜单,但是好像没法选择快捷菜单里的子项目.....
页:
[1]