(六)C# QQ讨论组广告群发工具——Windows窗体遍历的实现(附源码)

(六)C# QQ讨论组广告群发工具——Windows窗体遍历的实现(附源码),其实我在前面的文章已提到过如何实现窗体遍历:https://www.wuleba.com/4258.html,windows所有的窗体都是被系统所管理的,系统以句柄的形式去表征这些窗体,我们的目标就是找到这些句柄。

通过msdn可以查询到要获取所有的窗体需借助于EnumDesktopWindows这个api函数去实现,函数原型如下:

 C# Code By wuleba.com

1
2
3
4
5

BOOL WINAPI EnumDesktopWindows (

__in_opt  HDESK hDesktop,

__in      WNDENUMPROC lpfn,

__in      LPARAM lParam

);

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682615%28v=vs.85%29.aspx

我讲讲这个函数吧:

第一个参数是一个HDESK 类型参数,就是指定桌面的指针,如何获取桌面指针,不在今天的话题之内,当hDesktop参数为空时,默认表示当前桌面
第二个参数WNDENUMPROC声明的函数指针,WNDENUMPROC的声明如下:

 C# Code By wuleba.com

1
2
3
4

BOOL CALLBACK EnumWindowsProc (

__in  HWND hwnd,

__in  LPARAM lParam

);

这函数就不解释了窗体句柄加LPARAM参数
第三个参数是传递给回调的lParam值,一般为空就行

在C#中我们这样声明,声明委托:

 C# Code By wuleba.com

1

public delegate bool EnumDesktopWindowsDelegate (IntPtr hWnd, uint lParam);

定义API导出函数:

 C# Code By wuleba.com

1
2
3

[DllImport (“user32.dll”, EntryPoint = “EnumDesktopWindows”, ExactSpelling = false, CharSet = CharSet.Auto, SetLastError = true)]

[return: MarshalAs (UnmanagedType.Bool)]

public static extern bool EnumDesktopWindows (IntPtr hDesktop, EnumDesktopWindowsDelegate lpEnumCallbackFunction, IntPtr lParam);

当然你也可以分开写:

 C# Code By wuleba.com

1
2
3
4
5
6
7
8
9

WinAPIHelper.EnumDesktopWindows (IntPtr.Zero, new WinAPIHelper.EnumDesktopWindowsDelegate (EnumWindowsProc), IntPtr.Zero);

bool EnumWindowsProc (IntPtr hWnd, uint lparam)

{

if (pids.Contains (WndHelper.GetProcessId (hWnd) ) )

{

weas.Add (GetWinArgs (hWnd) );

}

return true;

}

通过这方法我们实现对所有窗体的获取。传送门:Rolends

版权声明:

小编:吾乐吧软件站

链接:https://www.wuleba.com/4310.html

来源:吾乐吧软件站

本资源仅供个人学习,禁止用于商业用途。下载后请于24小时内删除,并支持正版或原作者。因使用本资源导致的任何法律纠纷或损失,由使用者自行承担。

THE END
上一篇 手机双系统 Android 4.0+WP 7.5 神机视频
下一篇 迅雷会员尊享版 7.3.0.30 破解限制 优化版(独木成林作品)
相关内容
转发
4
点赞
分享
全部转发 0 只看作者
按时间倒序 按时间正序

全部评论 4 只看作者
按时间倒序 按时间正序
比分-www.779a.com|0w4d8y
呵呵,内容写的很到位,感觉很好,收藏一下,...壬辰年(龙)四月初七 2012-4-27
2012年4月27日 01:19 0 回复
其他几篇文章,大家自己找吾乐吧软件站搜索一下“QQ讨论组广告群发工具”,地址就不发了
2012年4月26日 19:36 0 回复
Cherise
楼上说得对
2012年4月26日 19:22 0 回复
Canace
第六篇了,还没进入正题,希望作者把握下。支持
2012年4月26日 19:22 0 回复
赞赏支持
微信收款码
微信扫一扫
支付宝收款码
支付宝扫一扫
投诉内容
0/200
上传图片(最多3张,单张不超过2MB)
生成分享图片
正在生成预览...