Я пытаюсь следовать этому ответу , и я достиг точки, где a должен позвонить
GetGUIThreadInfo()
, но я не могу найти это в pywin32 документации я использую.
То, что я до сих пор делал, это
import win32api
import win32gui
import win32process
test1 = win32gui.FindWindowEx(0, 0, 0, "notepad")
(test1tid, test1pid) = win32process.GetWindowThreadProcessId(test1)
test1hwndFocus = win32process.GetGUIThreadInfo(test1tid)
, но последняя строка полностью составлена, так как я не могу найти правильный способ вызова функции.
Update1:
Думаю, я добился определенного прогресса, но теперь моя структура просто возвращает 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)
Update2:
Я нашел типы здесь
update3:
Если кто-нибудь захочет посмотреть, что я использовал для go, посмотрите здесь