Obtenir HWND de chaque Fenêtre?

Je développe une application en python et je veux obtenir le HWND de chaque ouverture de windows. J'ai besoin du nom de windows et le HWND pour filtrer la liste pour gérer certaines spécificités de windows, le déplacement et le redimensionnement.

J'ai essayé de le faire moi même à la recherche d'informations autour de lui, mais je n'ai pas le bon morceau de code. J'ai essayé avec ce code mais je ne reçois que le titre de chaque windows (qui est grand), mais j'ai besoin de la HWND trop.

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)

Il y a une erreur ici:

win32gui.MoveWindow((titles)[5][0], 0, 0, 760, 500, True)
TypeError: The object is not a PyHANDLE object
DONC, n'est pas un supermarché où vous pouvez aller avec une liste de courses et laissez les autres en faire votre travail pour vous. Qu'avez-vous fait vous-même?
J'ai essayé de le faire moi même à la recherche d'informations autour de lui, mais je n'ai pas le bon morceau de code. J'ai essayé avec ce sjohannes.wordpress.com/2012/03/23/... mais je ne reçois que le titre de chaque windows (qui est grand), mais j'ai besoin de le HWND trop.
Ce que moi, c'est le cas, veuillez post code vous avez écrit (soit basé sur ce que vous avez trouvé, ou même copié) avec erreurs vous avez reçu ou d'autres choses que vous avez fait.
Merci de ne pas modifier votre question à inclure les correctifs de la réponse, parce que cela rend votre question inutile pour quelqu'un qui vient plus tard et veut comprendre.

OriginalL'auteur user1618465 | 2013-02-01