Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pywinauto中,如何右键单击系统托盘中的应用图标以打开关联菜单?_Python_Windows_Automation_Pywinauto_Qsystemtrayicon - Fatal编程技术网

Python 在pywinauto中,如何右键单击系统托盘中的应用图标以打开关联菜单?

Python 在pywinauto中,如何右键单击系统托盘中的应用图标以打开关联菜单?,python,windows,automation,pywinauto,qsystemtrayicon,Python,Windows,Automation,Pywinauto,Qsystemtrayicon,如何右键单击系统托盘中的应用程序图标,并使用pywinauto选择一个弹出菜单项 我的应用程序位于Windows桌面系统托盘上,无法使用.exe文件加载。因此,我必须右键单击systemtray图标并选择一个弹出菜单项,以获取应用程序的GUI 这是我的密码 app = Application(backend="uia").connect(path="explorer") sys_tray = app.window(class_name="Shell_TrayWnd") loc = sys_tra

如何右键单击系统托盘中的应用程序图标,并使用pywinauto选择一个弹出菜单项

我的应用程序位于Windows桌面系统托盘上,无法使用.exe文件加载。因此,我必须右键单击systemtray图标并选择一个弹出菜单项,以获取应用程序的GUI

这是我的密码

app = Application(backend="uia").connect(path="explorer")
sys_tray = app.window(class_name="Shell_TrayWnd")
loc = sys_tray.child_window(title='App name').click()
这是将鼠标位置更改为所需的应用程序图标,但不是右键单击,我还想从弹出窗口中选择一个菜单项。
如何获取此信息?

有一种方法
。单击输入(button=“right”)
可移动实际光标并执行实际单击。在您的情况下,它看起来是这样的(在Windows 10版本1803上):


注释了有用的调试打印(所有
.child\u窗口
规范都是从
dump\u tree()
输出中复制的)。还有方法
d.windows()
仅适用于主分支(pywinauto 0.6.6将在最近的两周内推出)。

还有方法
。单击输入(button=“right”)
移动实际光标并执行实际单击。在您的情况下,它看起来是这样的(在Windows 10版本1803上):


注释了有用的调试打印(所有
.child\u窗口
规范都是从
dump\u tree()
输出中复制的)。还有一种方法
d.windows()
仅适用于master branch(pywinauto 0.6.6将在最近的两周内推出)。

对Vasily的回答发表评论:因为窗口和工具栏的名称是本地化的,所以代码在语言环境不是英语的系统上不起作用。我在法国Windows 10系统上通过替换

main_tray_toolbar = d.Taskbar.child_window(title="User Promoted Notification Area", control_type="ToolBar")


评论瓦西里的回答:因为窗口和工具栏的名称是本地化的,所以代码在非英语的系统上不起作用。我在法国Windows 10系统上通过替换

main_tray_toolbar = d.Taskbar.child_window(title="User Promoted Notification Area", control_type="ToolBar")


嗨,瓦西里..在一个系统中对我来说很好。。在另一个系统上,我得到的错误如下:文件“C:\Users\isreedex\AppData\Local\Programs\Python\Python37\lib\site packages\pywinauto\application.py”,第246行,在控制条件解析)文件“C:\Users\isreedex\AppData\Local\Programs\Python\Python37\lib\site packages\pywinauto\timings.py”,第453行,在处理上述异常的过程中,在wait_until_通过raise errpywinauto.timings.TimeoutError时,发生了另一个异常:pywinauto.findbestmatch.MatchError:哪一行完全失败?如果等待上下文菜单失败,则必须使用
d.ContextMenu.wait('visible',timeout=10)
(或超过10秒),因为默认超时为5秒。如果这是针对
图标的,则问题可能是第二个系统上的不同标题。顺便说一句,此代码不应在Win8.1或更早版本上工作。一些早期的Win10版本有另一个工具栏结构。在这种情况下,可以使用旧的实验模块
pywinauto.taskbar
(需要从pywinauto导入任务栏
)。此模块使用“win32”后端。可以在单元测试中找到示例代码:ok。如果我要使用桌面模块,如果启动了应用程序的GUI,我如何访问GUI中的元素?你有关于这类案件的文件吗?嗨,瓦西里..它在一个系统中对我很有效。。在另一个系统上,我得到的错误如下:文件“C:\Users\isreedex\AppData\Local\Programs\Python\Python37\lib\site packages\pywinauto\application.py”,第246行,在控制条件解析)文件“C:\Users\isreedex\AppData\Local\Programs\Python\Python37\lib\site packages\pywinauto\timings.py”,第453行,在处理上述异常的过程中,在wait_until_通过raise errpywinauto.timings.TimeoutError时,发生了另一个异常:pywinauto.findbestmatch.MatchError:哪一行完全失败?如果等待上下文菜单失败,则必须使用
d.ContextMenu.wait('visible',timeout=10)
(或超过10秒),因为默认超时为5秒。如果这是针对
图标的,则问题可能是第二个系统上的不同标题。顺便说一句,此代码不应在Win8.1或更早版本上工作。一些早期的Win10版本有另一个工具栏结构。在这种情况下,可以使用旧的实验模块
pywinauto.taskbar
(需要从pywinauto导入任务栏
)。此模块使用“win32”后端。可以在单元测试中找到示例代码:ok。如果我要使用桌面模块,如果启动了应用程序的GUI,我如何访问GUI中的元素?你有这类案件的文件吗?
main_tray_toolbar = d.window(class_name='Shell_TrayWnd').child_window(class_name='ToolbarWindow32', control_type="ToolBar")