📄 unit1.~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 + -