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模拟点击
具体的代码怎么写呢?