一、C#代碼實作
本案例使用的是c# winform .NET Framework 4.7.2
首先我們宣告一個尋找表單的函式
[DllImport("User32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
然后我們呼叫此函式去尋找要操作的表單程式
IntPtr ParenthWnd = new IntPtr(0); ParenthWnd = YSQ.FindWindow(null, "123");

第一個引數是表單的類名、第二個引數是表單的標題,二者必須要有一個,這里推薦vs自帶的 spy++ 工具查看表單引數
然后我們再宣告一個尋找表單里按鈕的函式
[DllImport("User32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
引數說明:
hwndParent
|
主表單句柄、第一步呼叫 FindWindow 函式回傳的值 |
hwndChildAfter
|
子表單的句柄,可空 |
lpClassName
|
要尋找的控制元件的類名 |
lpWindowName
|
要尋找的控制元件的標題 |
然后我們呼叫此函式尋找表單里的 “連接” 按鈕,
IntPtr btnPtr = YSQ.FindWindowEx(ParenthWnd, IntPtr.Zero, "Button", "連接");
YSQ.PostMessage(btnPtr, 0x201, 0, 0);
YSQ.PostMessage(btnPtr, 0x202, 0, 0);
textBox1.AppendText($"點擊【連接】按鈕,按鈕句柄:{btnPtr}\r\n\r\n");
然后我們還需要定義一個給表單發送訊息的函式
[DllImport("User32.Dll", EntryPoint = "PostMessageA")]
public static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
然后呼叫 PostMessage 函式發送滑鼠按下的訊息
YSQ.PostMessage(btnPtr, 0x201, 0, 0); YSQ.PostMessage(btnPtr, 0x202, 0, 0);
//按下滑鼠左鍵
WM_LBUTTONDOWN = 0x201
//釋放滑鼠左鍵
WM_LBUTTONUP = 0x202
更多函式代碼請移步MSDN官網查看
這樣就實作了點擊其他程式里的按鈕操作!
github:https://github.com/2629180692
博客園:http://www.cnblogs.com/wurendao
完成日期 ?2020-02-10 無人島
遇到什么問題歡迎到下面評論里提出或者聯系我哦!
【轉載文章務必保留出處和署名,謝謝!】
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465904.html
標籤:C#
上一篇:c# 一些警告的處理方法
下一篇:對字符范圍做大小寫轉換
