using System.Runtime.InteropServices;
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow);
const uint BM_CLICK = 0xF5;
private void DoClick()
{
string lpszParentClass = "#000000";
string lpszParentWindow = "使命召唤10 xxxxxxx";
string lpszClass_Submit = "Button";
string lpszName_Submit = "开始游戏";
IntPtr ParenthWnd = new IntPtr(0);
IntPtr EdithWnd = new IntPtr(0);
ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow);
if (!ParenthWnd.Equals(IntPtr.Zero))
{
EdithWnd = FindWindowEx(ParenthWnd, (uint)EdithWnd, lpszClass_Submit, lpszName_Submit);
if (!EdithWnd.Equals(IntPtr.Zero))
{
SendMessage(EdithWnd, BM_CLICK, 0, 0);
}
}
}
我看网上的资料说可以这么做:
取到button的句柄
然后用API SendMessage发送
WM_LBUTTONDOWN和WM_LBUTTONUP模拟点击
具体的代码怎么写呢?