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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage