我正在尝试跟随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:
我想我取得了一些进展,但现在我的结构只返回0,当我期望一些hwnd。。。所以可能我的结构没有写入,我想这可能是因为我的结构中的类型,但是我如何找到正确的类型呢
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
显然,[MS.Docs]: GetGUIThreadInfo function不是由PyWin32包装的,因此必须使用其他方法。其中之一是通过[Python 3.Docs]: ctypes - A foreign function library for Python调用它(需要编写大量额外的代码)
code00.py:
输出:
注释:
相关问题 更多 >
编程相关推荐