我正在尝试在Windows中运行python脚本以将F5
命令发送到Google Chrome v53
窗口。但遗憾的是没有任何反应。但它与Internet Explorer v11
的魅力相似(在更改Class Name
之后)。
Class Name
of the Google Chrome window Python代码
import win32gui, win32api, win32con
hwnd = win32gui.FindWindow("Chrome_WidgetWin_1", None)
print hwnd
# Sending command to the main windows also does not work
win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_F5, 0)
hwnd = win32gui.FindWindowEx(hwnd, None, "Chrome_RenderWidgetHostHWND", None)
print hwnd
win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_F5, 0)
Python输出
1181972
0
编辑:包含隐藏的窗口
There seems to be more windows, that have the same Class Name
.因此,我现在不仅要搜索Class Name
,还要搜索Text
。第一次尝试只找到一个没有任何孩子的窗口。因此,输出的第二行有一个0
。
改变Python代码
import win32gui, win32api, win32con
hwnd = win32gui.FindWindow("Chrome_WidgetWin_1", "Stack Overflow - Google Chrome")
print hwnd
# Sending command to the main windows also does not work
win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_F5, 0)
hwnd = win32gui.FindWindowEx(hwnd, None, "Chrome_RenderWidgetHostHWND", None)
print hwnd
win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_F5, 0)
Python输出
1247302
1509536
编辑:SetForegroundWindow
解决方案
该问题的解决方案首先是通过win32gui.SetForegroundWindow(Handle)
方法将窗口设置为前景,然后发送键命令。
但是,仍然没有命令传递给窗口,网站也没有刷新。
答案 0 :(得分:0)
您可以使用此
import pyautogui
pyautogui.hotkey('f5')
这将模拟您的刷新键,并将信号发送到chrome。
如果您不希望启用chrome窗口,那么当您启动chrome时,请在命令提示符下键入以下内容以启动它:
start /B chrome.exe
然后关闭镶边。它将在后台运行。工作完成后,转到任务管理器并关闭chrome。
或者,您可以转到Chrome>高级>系统,然后查看第一个选项。