如何通过 python 和 win32api/pywinauto 按下 "Start" windows 按钮?
How can I press "Start" windows button via python and win32api/pywinauto?
如果“开始”菜单打开,我需要通过 python 隐藏它 window。
单击坐标对我不起作用,因为脚本将在 Windows 11 上 运行。
另外,如果我可以检查“开始菜单”是否可见等,那就太好了。
更新:
现在可用的代码。
desktop = Desktop(backend='uia')
start_menu = desktop.window(title='Start', control_type='Window')
if start_menu.exists():
pywinauto.keyboard.send_keys('{LWIN down}{LWIN up}')
import pyautogui
pyautogui.hotkey('winleft')
如果Win11没有什么特别的(我还没试过),在Win10上是这样的:
from pywinauto import Desktop
taskbar = Desktop(backend="uia").window(title="Taskbar", control_type="Pane")
# taskbar.dump_tree() # print the subtree like it should be coded with pywinauto
# we will check if "Start" window exists later (it's kind of locator)
start_window = Desktop(backend="uia").window(title="Start", control_type="Window")
# wait up to 2 seconds until window exists or return False
# if window already exists, it returns True almost immediately
if start_window.exists(timeout=2):
# hide the menu
taskbar.child_window(title="Start", control_type="Button").click()
如果“开始”菜单打开,我需要通过 python 隐藏它 window。 单击坐标对我不起作用,因为脚本将在 Windows 11 上 运行。 另外,如果我可以检查“开始菜单”是否可见等,那就太好了。
更新: 现在可用的代码。
desktop = Desktop(backend='uia')
start_menu = desktop.window(title='Start', control_type='Window')
if start_menu.exists():
pywinauto.keyboard.send_keys('{LWIN down}{LWIN up}')
import pyautogui
pyautogui.hotkey('winleft')
如果Win11没有什么特别的(我还没试过),在Win10上是这样的:
from pywinauto import Desktop
taskbar = Desktop(backend="uia").window(title="Taskbar", control_type="Pane")
# taskbar.dump_tree() # print the subtree like it should be coded with pywinauto
# we will check if "Start" window exists later (it's kind of locator)
start_window = Desktop(backend="uia").window(title="Start", control_type="Window")
# wait up to 2 seconds until window exists or return False
# if window already exists, it returns True almost immediately
if start_window.exists(timeout=2):
# hide the menu
taskbar.child_window(title="Start", control_type="Button").click()