import win32gui
toplist = []
winlist = []
def enum_callback(hwnd, results):
winlist.append((hwnd, win32gui.GetWindowText(hwnd)))
win32gui.EnumWindows(enum_callback, toplist)
firefox = [(hwnd, title) for hwnd, title in winlist if 'firefox' in title.lower()]
# just grab the first window that matches
firefox = firefox[0]
# use the window handle to set focus
win32gui.SetForegroundWindow(firefox[0])
3条答案
按热度按时间x6yk4ghg1#
您需要枚举窗口并匹配窗口的标题以获得所需的窗口。下面的代码搜索标题中包含“firefox”的窗口,并将焦点设置在该窗口上:
要最小化窗口,请使用以下行:
1l5u6lss2#
您需要枚举窗口并匹配窗口的标题以获得所需的窗口。下面的代码搜索标题中有“Firefox”的窗口并设置焦点
要最小化窗口,请使用以下行:
我报告了上述情况,但发生了错误。
追溯(最近一次调用):
TypeError:对象不是PyHANDLE对象
41zrol4v3#
我从这个问题中假设,你想写一个泛型的to,它可以在任何应用程序的任何窗口中工作。
你可能想试试Python Win32 GUI Automation库。我没有使用它,但听起来像它可能是你正在寻找的。如果这不起作用,你最好的选择可能是放弃python,使用像AutoIt这样的工具,它提供了对窗口操作的内置支持。
如果这两种解决方案都不起作用,你可能必须直接调用windows API。我不知道win32 api包是否 Package 了必要的功能,否则你就得用c/c++写一个python模块了。
如果.net API中有这种功能,那么可以使用IronPython。