【发布时间】:2020-05-10 02:05:17
【问题描述】:
我正在尝试关注this answer,我已经到了应该打电话的地步
GetGUIThreadInfo()
但我在我使用的pywin32 docomentation 中找不到。
到目前为止我所做的是
import win32api
import win32gui
import win32process
test1 = win32gui.FindWindowEx(0, 0, 0, "notepad")
(test1tid, test1pid) = win32process.GetWindowThreadProcessId(test1)
test1hwndFocus = win32process.GetGUIThreadInfo(test1tid)
但最后一行是完整的,因为我找不到调用函数的正确方法。
更新1:
我认为我取得了一些进展,但现在我的结构在我期望一些 hwnd 时返回 0...所以也许我的结构没有被写入,我认为这可能是因为我的结构中的类型,但我如何找到正确的类型?
import win32api
import win32gui
import win32process
import ctypes
class RECT(ctypes.Structure):
_fields_ = [
("left", ctypes.c_ulong),
("top", ctypes.c_ulong),
("right", ctypes.c_ulong),
("bottom", ctypes.c_ulong)
]
class GUITHREADINFO(ctypes.Structure):
_fields_ = [
("cbSize", ctypes.c_ulong),
("flags", ctypes.c_ulong),
("hwndActive", ctypes.c_ulong),
("hwndFocus", ctypes.c_ulong),
("hwndCapture", ctypes.c_ulong),
("hwndMenuOwner", ctypes.c_ulong),
("hwndMoveSize", ctypes.c_ulong),
("hwndCaret", ctypes.c_ulong),
("rcCaret", RECT)
]
guiThreadInfoStruct = GUITHREADINFO()
ctypes.sizeof(gtitest)
test1 = win32gui.FindWindowEx(0, 0, 0, "notepad")
(test1tid, test1pid) = win32process.GetWindowThreadProcessId(test1)
ctypes.windll.user32.GetGUIThreadInfo(test1tid, guiThreadInfoStruct)
print (guiThreadInfoStruct.hwndFocus)
更新2:
我找到了here的类型
更新3:
如果有人想看看我用这个做什么去看看here
【问题讨论】:
标签: python python-3.x windows ctypes pywin32