HWND von jedem Fenster erhalten?
Ich entwickle eine Python-Anwendung und möchte die bekommenHWND
von jedem offenen Fenster. Ich brauche den Namen der Fenster und derHWND
um die Liste zu filtern, um bestimmte Fenster zu verwalten, sie zu verschieben und ihre Größe zu ändern.
Ich habe versucht, mich selbst umzusehen, aber ich habe nicht den richtigen Code erhalten. Ich habe es versuchtCode Ich bekomme aber nur den Titel jedes Fensters (das ist toll), aber ich brauche dasHWND
auch.
import ctypes
import win32gui
EnumWindows = ctypes.windll.user32.EnumWindows
EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int))
GetWindowText = ctypes.windll.user32.GetWindowTextW
GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW
IsWindowVisible = ctypes.windll.user32.IsWindowVisible
titles = []
def foreach_window(hwnd, lParam):
if IsWindowVisible(hwnd):
length = GetWindowTextLength(hwnd)
buff = ctypes.create_unicode_buffer(length + 1)
GetWindowText(hwnd, buff, length + 1)
titles.append((hwnd, buff.value))
return True
EnumWindows(EnumWindowsProc(foreach_window), 0)
for i in range(len(titles)):
print(titles)[i]
win32gui.MoveWindow((titles)[5][0], 0, 0, 760, 500, True)
Hier ist ein Fehler aufgetreten:
win32gui.MoveWindow((titles)[5][0], 0, 0, 760, 500, True)
TypeError: The object is not a PyHANDLE object