|
|
|
|
||
教学课题:SPY++ 结合Delphi7.0利用API函数mouse_event实现模拟鼠标按下数字键
教学目标:用Delphi7.0编程坏境,以计算器为例模拟鼠标输入QQ号:854487915
教学要点:巩固mouse_event的用法
教学源码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
lb1: TLabel;
edt1: TEdit;
btn1: TButton;
lb2: TLabel;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
ck_hwnd:HWND;
ck_R:TRect;
begin
ck_hwnd:=FindWindow('SciCalc','计算器');
edt1.Text := IntToHex(ck_hwnd,8);
GetWindowRect(ck_hwnd,ck_R);
lb2.Caption := IntToStr(ck_r.Left)+','+ IntToStr(ck_R.Top)+'/'+
IntToStr(ck_R.Right)+ ','+ IntToStr(ck_R.Bottom );
//实现按下数字键8
SetCursorPos(350+ ck_R.Left ,150+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,350+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,350+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键5
SetCursorPos(350+ ck_R.Left ,180+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,350+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,350+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键4
SetCursorPos(310+ ck_R.Left ,180+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,310+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,310+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键4
SetCursorPos(310+ ck_R.Left ,180+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,310+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,310+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键8
SetCursorPos(350+ ck_R.Left ,150+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,350+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,350+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键7
SetCursorPos(310+ ck_R.Left ,150+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,310+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,310+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键9
SetCursorPos(390+ ck_R.Left ,150+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,390+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,390+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键1
SetCursorPos(310+ ck_R.Left ,210+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,310+ ck_R.Left,210+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,310+ ck_R.Left,210+ ck_R.Top,0,0);
Sleep(100);
//实现按下数字键5
SetCursorPos(350+ ck_R.Left ,180+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,350+ ck_R.Left,180+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,350+ ck_R.Left,180+ ck_R.Top,0,0);
end;
end.