c语言获取窗口指定信息,如何用C语言写一个获取窗口句柄和其他信息的小程序....

博主分享了作为SDK编程初学者,如何利用C语言编写一个小程序,实现获取Windows窗口句柄、ClassName和WindowText。程序基于EnumWindows、EnumChildWindows、GetClassName和GetWindowText四个API实现,可以查看所有窗体的类名、窗口文本和句柄。代码包括两个回调函数,用于遍历和输出信息。源代码已上传至GitHub。
摘要由CSDN通过智能技术生成

博主是一个SDK编程的初学者,始终坚持学技术要任务驱动的观念,在学习了有关Windows进程,内核对象,进程管理和控制的知识之后,就迫不及待地想要设计一个内存修改器练练手,然而在获取当前运行的各窗口的句柄这一步就卡住了,经过一番查阅和钻研,终于写出了如下的CUI小程序,解决了获取窗口及子窗口句柄,获取ClassName,获取WindowText的问题。

不知道这个小程序能不能替代SPY++的部分功能……

//CUI:相对于GUI(Graphical User Interface)图形用户界面而言的Command User Interface命令行用户界面。

PS:博主才疏学浅,程序中如有错误,欢迎各位指正!

该程序基于下列四个API实现

EnumWindows()

EnumWindows()

//BOOL EnumWindows(WNDENUMPROC,LPARAM)

//WNDENUMPROC 为回调函数的地址

//LPARAM为你自已定义的参数,将会传递给回调函数.

EnumChildWindows()

函数原型:

BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam);

//HWND hWndParent 父窗口句柄

//WNDENUMPROC lpEnumFunc 回调函数的地址

//LPARAM lParam 自定义的参数

//注意:回调函数的返回值将会影响到这个API函数的行为。如果回调函数返回true,则枚举继续直到枚举完成;如果返回false,则将会中止枚举。

GetClassName()

GetClassName(hwnd,classname,256);

//GetClassName();hwnd是需要传入的句柄/classname是需要传入的LPTSTR缓冲区,用于接收类名/256是int,指定classname的大小,单位字节.

//获取成功将返回返回值为拷贝到指定缓冲区的字符个数,如果函数失败,返回值为0.

GetWindowText()

//与GetClassName参数完全一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值