资源简介
通过窗口名获取程序所有控件句柄,并绘制句柄结构树。
代码片段和文件信息
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#三层架构代码生成器.
- C#封装MySql数据库操作,反射动态生成
- 俄罗斯方块-C#
- 简单人事管理系统
- C#+SQL Server的简单银行管理系统
- C#图书管理系统增 删 改 查 功能都有
- C# 考试管理系统
- c#实现K均值聚类算法,使用mysql数据库
- ArcEngine+C#缓冲区分析(GP工具+ITopolo
- C#版protobuf如何实现http方式二进制传输
- c# 制作的加强型音乐播放器实现了音
- C#版海康客户端API封装
- C#绘制实时曲线,可放大局部图像
- c#读取txt文档中的代码源程序
- C#从现象到本质,随书源码。
- 简易的答题系统
- PCA主成分分析winform实现
- C# Winform Sockets收发Json样例
- C#串口通信工具源代码
- 自写C#蜘蛛爬虫源代码
- USB检测,移除|UsbEject
- 基于ASP.NET SQL2008的在线考试系统源代
- C#.kgtemp转换.mp3文件源码请勿商用
- C#校园卡信息管理系统
- ASP.NET C# 教师工作量管理系统 代码 论
- 基于c#的层次分析法
- C#实现歌词显示.LRC歌词
- C# 层次分析法
- 8 基于两步移动搜索法的可达性分析
- 基于MapX的二次开发
评论
共有 条评论