模拟鼠标
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND h,h1;
TRect rc;
int i,j;
Sleep(500);
h1=GetDesktopWindow();
h=GetForegroundWindow();
if(h1==h)
{
h=GetNextWindow(h1,GW_HWNDPREV);
SetForegroundWindow(h);
GetWindowRect(h,&rc);
SetCursorPos(rc.right+20,rc.Bottom);
SetCursorPos(j,rc.Top+20);
Sleep(8);
mouse_event(MOUSEEVENTF_LEFTDOWN,j,i+145,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,j,j,0,0);
Sleep(8);
}
else
{
SetForegroundWindow(h);
GetWindowRect(h,&rc);
SetCursorPos(rc.Left+20,rc.Bottom);
for(i=rc.Bottom;i<=(rc.Top+10);i++)
{
SetCursorPos(rc.Left+20,i);
Memo1->Lines->Add(Format("%s (%d,%d)",ARRAYOFCONST(("mouse down",i,i))));
Sleep(3);
}
for(j=rc.left+20;j<=(rc.right-18);j++)
{
SetCursorPos(j,rc.Top+20);
Memo1->Lines->Add(Format("%s (%d,%d)",ARRAYOFCONST(("mouse down",j,j))));
Sleep(3);
}
Sleep(8);
mouse_event(MOUSEEVENTF_LEFTDOWN,j,i+145,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,j,j,0,0);
Memo1->Lines->Add(Format("%s %d",ARRAYOFCONST((" =",j))));
Sleep(8);
}
}
模拟键盘
HWND hWnd;
hWnd = GetFocus(); // 得到当前键盘光标所在的窗口
//CppWebBrowser1->Navigate(AnsiToUnicode(Edit1->Text.c_str()));
Memo1->Lines->Add("--focus--");
if (hWnd == NULL) {
hWnd = GetForegroundWindow(); // 得到当前窗口
if (hWnd == Form1->Handle) return; // 不需要程序本身的窗口
DWORD FormThreadID = GetCurrentThreadId();
WORD CWndThreadID = GetWindowThreadProcessId(hWnd, NULL);
// 附加输入线程
AttachThreadInput(CWndThreadID, FormThreadID, true);
hWnd = GetFocus(); // 得到当前键盘光标所在的窗口
AttachThreadInput(CWndThreadID, FormThreadID, false); // 取消
Memo1->Lines->Add("--window--");
}
if (hWnd == NULL) return;
Memo1->Lines->Add("[done]");
PostMessage(hWnd, WM_CHAR, (WPARAM)('A'&0xFF), 0);
PostMessage(hWnd, WM_CHAR, (WPARAM)('b'&0xFF), 0);
PostMessage(hWnd, WM_CHAR, (WPARAM)('C'&0xFF), 0);
PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
// AnsiString Lines = IntToStr(nTimes);