资源简介
通过窗口名获取程序所有控件句柄,并绘制句柄结构树。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace spyTree
{
public partial class Form1 : Form
{
[DllImport(“User32.dll“ EntryPoint = “FindWindow“)]
private static extern int FindWindow(string lpClassName string lpWindowName);
[DllImport(“user32.dll“)]//在窗口列表中寻找与指定条件相符的第一个子窗口
private static extern int FindWindowEx(
int hwndParent // handle to parent window
int hwndChildAfter // handle to child window
string className //窗口类名
string windowName // 窗口标题
);
[DllImport(“User32.dll“ CharSet = CharSet.Auto)]
public static extern int GetClassName(IntPtr hWnd StringBuilder ClassName int nMaxCount);
[DllImport(“user32.dll“)]
public static extern int GetWindowText(int hwnd StringBuilder lpString int nMaxCount);//获取窗体标题名称
[DllImport(“user32.dll“ EntryPoint = “SendMessageA“)]
public static extern int SendMessage(int hwnd int wMsg int wParam string lParam);
public Form1()
{
InitializeComponent();
}
int WM_GETTEXT = 0x0D;
private void getChildHwd(int parent_hwdTreeNode treeNode) {
int past_hwd = 0;
int i = 1;
List list = new List();
while(past_hwd!=0||i==1)
{
i++;
past_hwd = FindWindowEx(parent_hwd past_hwd null null);
if (past_hwd > 0)
{
StringBuilder sb = new StringBuilder();
int maxcount=0;
IntPtr intsb = new IntPtr(past_hwd);
GetClassName(intsbsb 255);
getChildHwd(past_hwd treeNode.Nodes.Add(past_hwd + “|“ + sb.ToString()));
}
}
//return list;
}
private void Button1_Click(object sender EventArgs e)
{
try
{
int intPtr = FindWindow(null window_title_text.Text.Trim());
if (intPtr == 0)
{
MessageBox.Show(“此标题窗口不存在!!!“ “错误“);
}
else
{
treeView1.Nodes.Clear();
getChildHwd(intPtr treeView1.Nodes.Add(intPtr + “|“ + window_title_text.Text.Trim()));
//;
}
}
catch (Exception ex) {
throw ex;
}
}
private int select_node_hwnd = 0;
private void TreeView1_NodeMouseDouble
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论