cashiba 发表于 2016-12-15 19:16:27

如何模拟操作托盘程序图标?[已解决]

本帖最后由 cashiba 于 2017-3-18 09:31 编辑

有些程序,比喻杀毒软件等,平时以图标形式常驻系统托盘中,左键或右键点击该图标,会弹出项目丰富的菜单而不是直接打开主界面。
有时不必要打开主界面,而直接通过上述弹出菜单选择需要的项目执行...
请问
这类最小化到托盘的程序,如何模拟(右键或左键)点击该程序的托盘图标,再在弹出的菜单中点击某项目?
以A大的函数询捕为例,如下图,如何实现:右键点击图标--->在弹出菜单中接着点击<关于>?
最好是能实现后台点击,总觉得通过前台鼠标定位点击的方法有些笨拙



下面是某杀毒软件的弹出菜单:

229989799 发表于 2016-12-16 13:36:15

看帮助啊。托盘右键菜单
#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

cashiba 发表于 2016-12-16 18:09:45

看帮助啊。托盘右键菜单
229989799 发表于 2016-12-16 13:36 http://www.autoitx.com/images/common/back.gif
我不是问怎么创建托盘菜单,而是怎么用AU3自动选择执行第三方程序的托盘菜单及其项目....

q410225 发表于 2016-12-16 21:13:53

不靠鼠标点,难啊,除非软件开发的时候就给你留有接口.
cmdline,hotkey之类.

还是看软件了,

cashiba 发表于 2016-12-18 10:03:17

以下虽然是小问题,但是也令人困扰哎

1、杀毒软件常常会不定时弹出消息界面,挡住目标窗口,影响操作。调出托盘杀软的右键菜单后,如何选择退出这个按钮或项目呢?
也就是如何定位并选择快捷菜单里面的项目的问题


2、输入法的悬浮窗口常常也会挡住目标窗口,并且常常自动切换到中文输入法
如何根据输入法状态使之自动切换保持英文输入状态呢?
也就是自动识别输入法状态并予以操控的问题

以上都是在其它电脑上使用AU3程序。要保持其它电脑的使用习惯或常态的前提下,想通过AU3临时改变到适合AU3小程序正常运行的状态,
所需要解决的小问题.....

heroxianf 发表于 2016-12-18 22:19:51

http://www.autoitx.com/thread-4501-1-10.html

cashiba 发表于 2016-12-19 12:54:21


heroxianf 发表于 2016-12-18 22:19 http://www.autoitx.com/images/common/back.gif
这个函数可以准确点击托盘图标调出快捷菜单,但是好像没法选择快捷菜单里的子项目.....
页: [1]
查看完整版本: 如何模拟操作托盘程序图标?[已解决]