根据网上提供代码,可以用鼠标获取指定窗体句柄,
现在想遍历指定窗体上所有控件的句柄,希望提供代码,
找了一天的帖子了,请勿发参考链接,直接上代码。小白。。。
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
c#已知窗体句柄,如何遍历出所有控件句柄
收起
- 写回答
- 好问题 2 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
z474243930 2017-11-30 19:46关注答案出来了:https://zhidao.baidu.com/question/1575352645104568900.html
说到做到,发代码,链接为源地址,下面我备注一下而已List<string> list = new List<string>(); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam); [DllImport("user32.dll")] public static extern int GetWindowText(int hWnd, IntPtr lpString, int nMaxCount); private void toolStripButton5_Click(object sender, EventArgs e) { list.Clear(); EnumChildWindows(this.Handle, this.EnumWindowsMethod, IntPtr.Zero); //这里得到了所有的子窗口list.Count; //this.Handle改成你已得到的窗体句柄 } private bool EnumWindowsMethod(int hWnd, int lParam) { IntPtr lpString = Marshal.AllocHGlobal(200); GetWindowText(hWnd, lpString, 200);//这里获得控件text var text = Marshal.PtrToStringAnsi(lpString); if (!string.IsNullOrWhiteSpace(text)) list.Add(text);//添加到list,如果要获得句柄就新建list添加hWnd return true; }
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2024-05-31 01:45LongtengGensSupreme的博客 c# windform 已知窗体句柄,如何遍历出所有控件句柄。
- 2018-06-11 15:56在C#编程环境中,通过已知的窗口句柄来获取窗口标题是一项常用且实用的功能,尤其是在进行自动化测试、用户界面操作或系统监控等任务时。本文将详细介绍如何使用C#来实现这一功能,并深入探讨其背后的原理和技术细节...
- 2024-05-31 01:38LongtengGensSupreme的博客 Winform 知道一个窗体的句柄,如何获取这个窗体,并添加控件。
- 2021-01-14 02:25kylin小鸡内裤的博客 2016-12-06 回答句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):0。获取所在类窗口的句柄:this->m_hwnd1。主窗口的句柄:无论在主窗口类内,还是子窗口类内,获取主窗口句柄的方法:...
- 2017-11-11 08:22weixin_30577801的博客 其实想要找到一个标题已知的窗口句柄,用一个API函数就可以了:FindWindow. 其函数原形是: function FindWindow(lpClassName, lpWindowName: PChar): HWND; stdcall; lpClassName:窗口类名.如果只知道标题,可以为空...
- 2020-08-19 02:20HOLD ON!的博客 C# WinForm 获取句柄与置顶窗体 [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)] public static extern IntPtr ...
- 2020-12-16 10:31a1376871144的博客 //声明 提示:文章写完后,目录...句柄的获取,句柄名称的获取,句柄像控件的转化 二、使用步骤 1.引入方法 代码如下(示例): //获取窗口标题 [DllImport("user32", SetLastError = true)] private stati...
- 2016-12-15 06:33weixin_30325071的博客 通过这个工具可以获得窗体的句柄,当然这里获得的句柄只能用于测试,因为.net开发的程序窗体每次打开句柄都会变,都需要重新获得。这个工具的用处在于找一个控件的前一句柄控件和后一句柄控件。 一、引用 //寻找目.....
- 2018-12-30 06:03骑着蜗牛奔跑冲的博客 [DllImport("user32.dll", EntryPoint = "GetWindow")]//获取窗体句柄,hwnd为源窗口句柄 /*wCmd指定结果窗口与源窗口的关系,它们建立在下述常数基础上: GW_CHILD 寻找源窗口的第一个子窗口 GW_HWNDFIRST 为...
- 2017-07-06 06:32夜游神00000000的博客 遍历Winform窗体内部的所有的控件,并对特定的控件进行处理 private void button1_Click(object sender, EventArgs e) { foreach (Control item in this.Controls) { //运用i
- 2017-05-03 13:29东东丶的博客 但是,有很大一个问题:假设一个窗体上有很多相同的控件,并且根本没办法区分他们,即使我们能找到所有的控件句柄,我们又不能区分到底哪个是我们想要的,同样是干着急.我想了很长时间,后来在大富翁里找到了答案,只要用到...
- 2010-02-24 03:42cuibinmo3519的博客 foreach(Controlcinthis.Controls){listBox1.Items.Add(c.Name);Controlc1=casButton;if(c1!=null)...
- 2020-07-17 09:14jones.s的博客 获取当前窗口句柄:GetForegroundWindow() [DllImport(“user32.dll”, CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值类型是IntPtr,即为当前获得焦点...
- 2019-07-26 21:20weixin_30920597的博客 用axWebBrowser加载HTML网页时,真正显示内容的窗体并不是axWebBrowser,而是其子窗口的子窗口一个名为Internet Explorer_Server的类。从spy++可知: 公司需要在网页上进行手写,需要对Internet Explorer_Server...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司