浅谈如何利用C 浅谈如何加强会计基础工作
创始人
2024-04-16 14:21:32
0

C#枚举所有的窗体的两种方法

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. }  

有一个combobox和button,点击按钮,将所有窗口列举显示在下拉框。接下来的工作就是设置窗体为隐藏。但是有一个缺点

隐藏后无法显示。留待以后解决。利用C#枚举所有的窗体就讲到这里。

【编辑推荐】

  1. Lambda表达式入门实例
  2. 在C++中使用Lambda函数提高代码性能
  3. 浅谈如何使用Lambda表达式做抽象代表
  4. C#中调用Outlook API发起网络会议
  5. 理解C#中的Lambda表达式

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...