📄 tscrcontrolunit.pas
字号:
unit TScrControlUnit;
interface
uses
Classes, IdTCPClient,IdGlobal,ComCtrls,SysUtils,BASE64, Windows,Forms;
type
TScrControlThread = class(TThread)
private
SysThread:TIdTCPClient;
protected
procedure Execute; override;
Public
constructor Create;
destructor Destroy; override;
end;
implementation
uses MainServer,My_StreamManage;
constructor TScrControlThread.Create;
begin
inherited Create(True);
SysThread:=TIdTCPClient.Create(nil);
SysThread.RecvBufferSize:=32768;
SysThread.SendBufferSize:=32768;
ScrConOver:=True;
FreeOnTerminate:=True;
Suspended := false;
//Priority:=tpTimeCritical;
end;
procedure TScrControlThread.Execute;
var
Request:String;
MousePoint : TPoint;
num,x,y:integer;
begin
if H_GZVIP2004.ConRpcport(SysThread) then
begin
try
Request:='004';
Request:=EncodeBase64(Request);
SysThread.Write(Request+EOL);
except
SysThread.Disconnect;
SysThread.Free;
exit;
end;
repeat
try //循环发送图像
Request:=SysThread.ReadLn(EOL);
Move(Request[1], num, sizeof(integer));
Move(Request[1+4], x, sizeof(integer));
Move(Request[1+8], y, sizeof(integer));
MousePoint := Point(x, y);
if num<5 then SetCursorPos(x, y); //移动鼠标
case num of
1: begin //左键单击鼠标
SetCapture(WindowFromPoint(MousePoint));
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end;
2: begin //左键双击鼠标
SetCapture(WindowFromPoint(MousePoint));
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;
3: begin //右键单击鼠标
SetCapture(WindowFromPoint(MousePoint));
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTUP ,0,0,0,0);
end;
4: begin //右键双击鼠标
SetCapture(WindowFromPoint(MousePoint));
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTUP ,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTUP ,0,0,0,0);
end;
5: begin //微标键
keybd_event(91,0,0,0);
Application.ProcessMessages;
KeyBD_Event(91,0,KEYEVENTF_EXTENDEDKEY,0);
Application.ProcessMessages;
KeyBD_Event(91,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
6: begin //键盘按下
keybd_event(Byte(x),0,0,0);
end;
7: begin //键盘抬起
KeyBD_Event(Byte(x),0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
8: begin //Tob键
keybd_event(9,0,0,0);
Application.ProcessMessages;
KeyBD_Event(9,0,KEYEVENTF_KEYUP,0);
end;
9: begin //Esc键
keybd_event(27,0,0,0);
Application.ProcessMessages;
KeyBD_Event(27,0,KEYEVENTF_KEYUP,0);
end;
10: begin //发送按钮
keybd_event(Byte(x),0,0,0);
end;
end;
except
Exit;
end;
until (Terminated=False)and(SysThread.Connected=False);
end;
SysThread.Disconnect;
SysThread.Free;
//Self.Terminate;
end;
destructor TScrControlThread.Destroy;
begin
ScrConOver:=False;
inherited destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -