[原创]C#应用WindowsApi实现查找(FindWindowEx)文本框(TextBox、TextEdit)。
/// <summary>
/// 获取文本框控件
/// </summary>
/// <param name="hwnd">文本框所在父窗口</param>
/// <param name="text">文本框文本,null为搜索所有</param>
/// <param name="iLevel">父窗口上第几个文本框</param>
/// <returns>文本框句柄</returns>
private IntPtr GetTextEdit(IntPtr hwnd,string text, int iLevel)
{
IntPtr iEditor = IntPtr.Zero;
IntPtr iCode = IntPtr.Zero;
if (hwnd != IntPtr.Zero)
{
for (int i = 0; i < iLevel; i++)
{
iCode = WindowsApi.FindWindowEx(hwnd, iCode, "WindowsForms10.Window.b.app.0.bf7771_r13_ad1", "");
if (iCode == IntPtr.Zero)
break;
}
if (iCode != IntPtr.Zero)
iEditor = WindowsApi.FindWindowEx(iCode, IntPtr.Zero, "WindowsForms10.EDIT.app.0.bf7771_r13_ad1", text);
}
return iEditor;
}
说明:
"WindowsForms10.EDIT.app.0.bf7771_r13_ad1" 文本框类型,可以通过Spy++工具查看,如下图

文本框都有一个父类,如代码中"WindowsForms10.EDIT.app.0.bf7771_r13_ad1",即为文本框的父类类型,要先找到第几个文本框的父类,再从父类中查找当前文本框。
如果"WindowsForms10.EDIT.app.0.bf7771_r13_ad1"会发生变化,则传入null即可,意思是按照所有类型遍历,这时候“第几个”要做相应的变更。
[原创]C#应用WindowsApi实现查找(FindWindowEx)文本框(TextBox、TextEdit)。的更多相关文章
- C#.NET常见问题(FAQ)-如何让文本框textbox内容限制为数字
//限制文本框的输入 private void txtQuestionScore_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCha ...
- ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)
下面的函数每执行一次就生成一个TextBox(其实是<input type="Text">) var i=0; function changeIt() ...
- 使用Htmlhelper,创建文本框TextBox
下面通过HtmlHelper帮助类,创建文本框. 首先新建一个实体类,做为下面的例子: using System; using System.Collections.Generic; using Sy ...
- C#控制文本框(TextBox)只能输入正数,负数,小数
由于项目需要,需要写一个TextBox文本框,此文本框需要满足:只能输入正数,负数和小数.比如:3,0.3,-4,-0.4等等. 在网上找了许多正则表达式都不好用,由于本人又对正则表达式 ...
- [原创]C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
首先介绍基本WindowsApi: public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 函 ...
- 保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号),就没有了! protected override ...
- easyUI文本框textbox笔记
知识点: 1.图标位置 Icon Align属性,有left和right两个: 2.textbox的setvalue方法,getvalue方法. <div style="margin: ...
- asp.net小技巧:保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号.圆点),就没有了! 一个可行的做法是 : prot ...
- C# winform三种方法判断文本框textBox内容是否为空
使用系统API函数,需要使用命名空间:System.Runtime.InteropServices: 1.if (textBoxPath.Text == String.Empty ) 2.if (t ...
随机推荐
- ASP。net 之view
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs&qu ...
- python-进程,线程,协程
1.进程和线程 进程定义:进程是正在运行的程序的实例,进程是内核分配资源的最基本的单元,而线程是内核执行的最基本单元,进程内可以包含多个线程,只要记住这三个要点,就可以很清楚的理清进程和线程的行为模 ...
- 2017年1月5日 星期四 --出埃及记 Exodus 21:31
2017年1月5日 星期四 --出埃及记 Exodus 21:31 This law also applies if the bull gores a son or daughter.牛无论触了人的儿 ...
- 一个简单的MySql数据库连接池的实现
package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...
- mysql 唯一约束
ALTER TABLE user ADD UNIQUE (username,userid) 对表user增加username和userid的唯一约束 ALTER TABLE tablename AD ...
- 微信小程序-提示框
提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说明: 示例代码: wx.showToast({ title: '成功', icon: 'success', dur ...
- [SAP ABAP开发技术总结]ABAP调优——代码优化
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Oracle创建数据库
Oracle创建数据库有三种方式:一.使用DBCA(Database Configuration Assistant 数据库配置助手):二.使用 create database指令:三.在安装数据库软 ...
- 水平垂直居中div(css3)
一.在需要居中的元素加上如下C3属性即可: <!doctype html><html lang="en"><head> <meta cha ...
- (译)关于async与await的FAQ
传送门:异步编程系列目录…… 环境:VS2012(尽管System.Threading.Tasks在.net4.0就引入,在.net4.5中为其增加了更丰富的API及性能提升,另外关键字”async” ...