LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 获取其他窗口程序控件,改变值,触发事件

admin
2023年12月29日 23:45 本文热度 563

代码如下:

[DllImport("User32.dll", EntryPoint = "FindWindow")]

private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll", EntryPoint = "FindWindowEx")]

private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

[DllImport("User32.dll", EntryPoint = "SendMessage")]

private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);

const int WM_GETTEXT = 0x000D;

const int WM_SETTEXT = 0x000C;

const int WM_CLICK = 0x00F5;

private void button3_Click(object sender, EventArgs e)

{

int retval = 0;

//增加一个返回值用来判断操作是否成功

//下面的这些参数都可以用Spy++查到

//string lpszParentClass = "#32770";

//整个窗口的类名

string lpszParentWindow = "Form1";

//窗口标题 string lpszClass = "WindowsForms10.EDIT.app.0.b7ab7b";

//需要查找的子窗口的类名,也就是输入框

string lpszClass_Submit = "WindowsForms10.BUTTON.app.0.b7ab7b";

//需要查找的Button的类名 string lpszName_Submit = "确定";

//需要查找的Button的标题 string text = "";

IntPtr ParenthWnd = new IntPtr(0);

IntPtr EdithWnd = new IntPtr(0);

//查到窗体,得到整个窗体

ParenthWnd = FindWindow(null, lpszParentWindow);

//判断这个窗体是否有效

if (!ParenthWnd.Equals(IntPtr.Zero))

{

     //得到User Name这个子窗体,并设置其内容

     EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, "");

     if (!EdithWnd.Equals(IntPtr.Zero))

     {

          text = "Book";

          //调用SendMessage方法设置其内容

          SendMessage(EdithWnd, WM_SETTEXT, (IntPtr)0, text); retval++;

     }

     //得到Password这个子窗体,并设置其内容

     EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, "");

     if (!EdithWnd.Equals(IntPtr.Zero))

     {

          text = "ITest";

          SendMessage(EdithWnd, WM_SETTEXT, (IntPtr)0, text); retval++;

     }

     //得到Domain这个子窗体,并设置其内容

     EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, "");

     if (!EdithWnd.Equals(IntPtr.Zero))

     {

          text = "Ilove";

          SendMessage(EdithWnd, WM_SETTEXT, (IntPtr)0, text); retval++;

     }

     //得到Button这个子窗体,并触发它的Click事件

     EdithWnd = FindWindowEx(ParenthWnd, (IntPtr)0, lpszClass_Submit, lpszName_Submit);

     if (!EdithWnd.Equals(IntPtr.Zero))

     {

          SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0");

          retval++;

     } 

} 


该文章在 2023/12/29 23:45:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved