改写cpp到py练习,主要是回调函数原型比较烦点

py版枚举窗口标题pyallwins.py如下:

# -*- coding:utf-8 -*-

# 2022.7.8 cpp改进成py


from ctypes import *


defenumproc(hwnd, lParam):

    buff = create_unicode_buffer(256)

    user32.SendMessageW(hwnd, 0x0d, 256, buff) # WM_GETTEXT=0x0d

    print('hwnd = {0:#010x} title = {1}'.format(hwnd,buff.value))

    returnTrue


user32 = windll.user32

ENUMFUN = WINFUNCTYPE(c_bool, c_ulong, POINTER(c_ulong))


user32.EnumWindows(ENUMFUN(enumproc), 0)


以前的cpp版allwins.cpp如下:

#include<windows.h>

#include<stdio.h>


BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)

{

    charBuff[256];

    SendMessage(hwnd, WM_GETTEXT, 256, (LPARAM)Buff);

    printf("hwnd = 0x%08x, title = %s\n", hwnd, Buff);


    return TRUE;

}


intmain(intargc, char*argv[])

{

    EnumWindows(EnumWindowsProc, 0);

    return0;

}



评论
©appall | Powered by LOFTER