⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 采用Delphi编程
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleServer, XDICTGRB_TLB, jpeg, ExtCtrls;

type
  TForm1 = class(TForm,IXDictGrabSink)
    btn1: TButton;
    edt1: TEdit;
    btn2: TButton;
    btn3: TButton;
    GrabProxy1: TGrabProxy;
    mmo1: TMemo;
    img1: TImage;
    edt2: TEdit;
    edt3: TEdit;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    function QueryWord(const WordString: WideString; lCursorX: Integer; lCursorY: Integer;
                       const SentenceString: WideString; var lLoc: Integer; var lStart: Integer): Integer;safecall;
    procedure FormShow(Sender: TObject);
    procedure img1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  winrect,rect:TRect;
  handle1:HWND;
  x,y,lPara:Integer;
begin

  handle1 := findwindow(nil,PAnsiChar(edt1.Text));
  setforegroundwindow(handle1);
  GetWindowRect(Handle1, winrect);  //取坐标
  //SetCursorPos(winrect.Left+135,winrect.Top+334);
    SetForegroundWindow(handle1); //置前
   SetCursorPos(winrect.Left+49,winrect.Top+443);          //鼠标指针置于MU画面上

  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  sleep(1000);

   //8EY   or   KEYEVENTF_KEYUP,0);
  //13864819099

   keybd_event(107,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(107,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);       //+

  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);         //8

  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY or   KEYEVENTF_KEYUP,0);           //6
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);         //1

  keybd_event(51,0,KEYEVENTF_EXTENDEDKEY   or   0,0);                        //3
  keybd_event(51,0,KEYEVENTF_EXTENDEDKEY  or  KEYEVENTF_KEYUP,0);





    keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);                      //8
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);



  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   0,0);                        //6
  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY or   KEYEVENTF_KEYUP,0);


    keybd_event(52,0,KEYEVENTF_EXTENDEDKEY   or   0,0);                      //4
  keybd_event(52,0,KEYEVENTF_EXTENDEDKEY  or  KEYEVENTF_KEYUP,0);



    keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);                     //8
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);


    keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(48,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(48,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

      keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

      keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

  sleep(1000);
  keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(VK_CONTROL,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(68,0,KEYEVENTF_EXTENDEDKEY   or   0,0);

  keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  keybd_event(VK_CONTROL,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  keybd_event(68,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

  SetCursorPos(winrect.Left+75,winrect.Top+127);      

  sleep(1000);
                   //Dialing...

  SetCursorPos(winrect.Left+77,winrect.Top+127);

  sleep(1000);

  SetCursorPos(winrect.Left+75,winrect.Top+127);

  sleep(1000);

  SetCursorPos(winrect.Left+77,winrect.Top+127);

  sleep(1000);

  //ShowMessage(edt3.Text);
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  winrect,rect:TRect;
  handle1:HWND;
  x,y,lPara:Integer;
begin
  handle1 := findwindow(nil,PAnsiChar(edt1.Text));
  setforegroundwindow(handle1);
  GetWindowRect(Handle1, winrect);
  //SetCursorPos(winrect.Left+135,winrect.Top+334);
   SetCursorPos(winrect.Left+49,winrect.Top+445);          //鼠标指针置于MU画面上
   SetForegroundWindow(handle1);
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
  setforegroundwindow(findwindow(nil,'无标题-记事本'));
  //8
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  //6
  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  //13864819099
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(51,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(51,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(54,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(52,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(52,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(56,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(49,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

    keybd_event(48,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(48,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

      keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

      keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(57,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);

  keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(VK_CONTROL,0,KEYEVENTF_EXTENDEDKEY   or   0,0);
  keybd_event(68,0,KEYEVENTF_EXTENDEDKEY   or   0,0);

  keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  keybd_event(VK_CONTROL,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);
  keybd_event(68,0,KEYEVENTF_EXTENDEDKEY   or   KEYEVENTF_KEYUP,0);



end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  //ShowMessage('X:'+inttostr(x)+' Y:'+inttostr(y));
end;

function TForm1.QueryWord(const WordString: WideString; lCursorX,
  lCursorY: Integer; const SentenceString: WideString; var lLoc,
  lStart: Integer): Integer;
begin
mmo1.Lines.Clear;
   //Label1是当前鼠标的位置,Lcursorx,LCursorY表示鼠标的位置
mmo1.Lines.Append( '(' + inttostr(lCursorX) + ',' +inttostr(lCursorY) + ')') ;
//Label2是当前鼠标指向的位置的字符串,保留在(SentenceString)中
mmo1.Lines.Append('当前语句:' + SentenceString);
//Lloc鼠标在语句中的位置 ,label3得到当前字符串
//mmo1.Lines.Append('当前字符:' + Midstr(SentenceString,lloc+1,1));



edt3.Text := SentenceString;

end;

procedure TForm1.FormShow(Sender: TObject);
begin
  GrabProxy1.GrabInterval := 1;//指定抓取时间间隔
   self.GrabProxy1.GrabMode := XDictGrabMouse;//模式(鼠标是否加按键)
   self.GrabProxy1.GrabEnabled := true;//是否有效
   self.GrabProxy1.AdviseGrab(self);//接口指向自身
end;

procedure TForm1.img1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  edt2.text := 'X:'+inttostr(X) + ' Y:'+inttostr(Y+30);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -