用Delphi編程模擬鼠標(biāo)操作

字號(hào):

下面以鼠標(biāo)左鍵單擊為例來(lái)說(shuō)明如何模擬鼠標(biāo)操作:
    procedure TForm1.btnLClickClick(Sender: TObject);
    begin
    SetCursorPos(10,10);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;
    首先需要通過(guò)SetCursorPos函數(shù)來(lái)設(shè)置需要單擊的坐標(biāo)。然后通過(guò)mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0)語(yǔ)句在(10,10)坐標(biāo)處按下鼠標(biāo)左鍵。最后不要忘了通過(guò)mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0)語(yǔ)句釋放鼠標(biāo)左鍵。
    雙擊的操作可以通過(guò)兩個(gè)連續(xù)的單擊來(lái)實(shí)現(xiàn);鼠標(biāo)移動(dòng)的操作可以通過(guò)指定mouse_event 函數(shù)的第1個(gè)參數(shù)MOUSEEVENTF_MOVE,第2個(gè)和第3個(gè)參數(shù)為左邊來(lái)實(shí)現(xiàn);右鍵單擊和左鍵單擊的原理一致,只不過(guò)mouse_event函數(shù)中的參數(shù)分別替換為MOUSEEVENTF_RIGHTDOWN和MOUSEEVENTF_RIGHTUP。
    程序代碼如下:
    unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
    type
    TForm1 = class(TForm)
    btnMove: TButton;
    btnLClick: TButton;
    btnLDClick: TButton;
    btnRClick: TButton;
    procedure btnMoveClick(Sender: TObject);
    procedure btnLClickClick(Sender: TObject);
    procedure btnLDClickClick(Sender: TObject);
    procedure btnRClickClick(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.dfm}
    procedure TForm1.btnMoveClick(Sender: TObject);
    begin
    mouse_event(MOUSEEVENTF_MOVE,100,100,0,0);
    end;
    procedure TForm1.btnLClickClick(Sender: TObject);
    begin
    SetCursorPos(10,10);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;
    procedure TForm1.btnLDClickClick(Sender: TObject);
    begin
    SetCursorPos(200,200);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;
    procedure TForm1.btnRClickClick(Sender: TObject);
    begin
    SetCursorPos(200,200);
    mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
    end;
    end.
    保存文件,然后按F9鍵運(yùn)行程序