C#枚举所有的窗体的两种方法
来源:互联网 发布:福临门秋田小町 知乎 编辑:程序博客网 时间:2024/06/05 16:16
1、直接查找游戏窗口,找到后作处理。
2、C#枚举所有窗口,列表显示,然后再处理。
我这里按第二种方式做。首先是一些准备工作,如,了解如何调用系统API,见以前的博文。枚举窗口要用的一些
API:EnumWindows,GetWindowText,GetParent,IsWindowVisible.
EnumWindows:枚举窗口
GetWindowText:取得窗口标题
GetParent:取得当前窗体的父窗体(非常重要,用于判断是否为顶级窗体)
IsWindowVisible:判断窗体是否可见,用于过滤到不可见窗体。
C#枚举代码如下:
1. namespaceHideProcess
2. {
3. publicdelegateboolCallBack(inthwnd,inty);
4. publicpartialclassForm1:Form
5. {
6.
7.
8. [DllImport("user32.dll")]
9.
10. publicstaticexternintEnumWindows(CallBackx,inty);
11. [DllImport("user32")]
12. publicstaticexternintGetWindowText(inthwnd,StringBuilderlptrString,intnMaxCount);
13. [DllImport("user32")]
14. publicstaticexternintGetParent(inthwnd);
15. [DllImport("user32")]
16. publicstaticexternintIsWindowVisible(inthwnd);
17.
18. publicboolReport(inthwnd,intlParam)
19. {
20. intpHwnd;
21. pHwnd=GetParent(hwnd);
22.
23. if(pHwnd==0&&IsWindowVisible(hwnd)==1)
24. {
25. StringBuildersb=newStringBuilder(512);
26.
27. GetWindowText(hwnd,sb,sb.Capacity);
28. if(sb.Length>0)
29. {
30. this.comboBox1.Items.Add(sb.ToString());
31. }
32. }
33. returntrue;
34. }
35. publicForm1()
36. {
37. InitializeComponent();
38. }
39.
40. privatevoidbutton1_Click(objectsender,EventArgse)
41. {
42. Process[]ProcArray=Process.GetProcesses();
43. comboBox1.Items.Clear();
44. EnumWindows(this.Report,0);
45. }
46. }
47. }
有一个combobox和button,点击按钮,将所有窗口列举显示在下拉框。接下来的工作就是设置窗体为隐藏。但是有一个缺点
隐藏后无法显示。留待以后解决。利用C#枚举所有的窗体就讲到这里。- C#枚举所有的窗体的两种方法
- C#枚举所有的窗体
- C#中窗体间数据传递的两种方法
- 窗体间的方法两种调用
- Delphi最小化窗体的两种方法
- 实现窗体拖动的两种方法
- 枚举窗口的两种方法
- 枚举定义的两种方法
- C#使控件随窗体变化而变化的两种方法
- C# 系统应用之无标题窗体移动的两种方法
- C# 自定义窗体移动窗体的方法
- C# 制作不规则窗体的两种解决方案
- C#窗体间传值的几种方法
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- http://bbs.chinaunix.net/thread-1676942-8-1.html
- D3D啊~~为什么你这么麻烦
- hdu 1548 A strange lift BFS 解法
- log4net 按天记录
- ant1.7 javac out of memory(超过)
- C#枚举所有的窗体的两种方法
- 婚前准备(转)
- MTK手机软件系统工程和配置简介
- Synchronize with Driver loading/Unloading
- C++笔记——c++编程思想(上)第四五六章数据抽象、初始化与清除
- XNA学习笔记——相机设置
- 中移动衰退? 2302亿元现金是批驳砝码(转)
- #pragma comment
- C#.Net(初学正则表达式的例子)