三、編寫被控程序
---- 1、新建一個項目Server.dpr,并把一個TServerSocket元件放到Form上,它的屬性設置如下:Active設為True;Port設為100,其它屬性按默認值。
---- 2、ServerSocket1的OnClientRead事件代碼如下:
procedure TForm1.ServerSocket1ClientRead
(Sender: TObject;Socket: TCustomWinSocket);
var
Str:PChar;
Code,V:Integer;
begin
Str:=PChar(Socket.ReceiveText); //接收字符串
Val(Str,V,Code); //處理接收的字符串,首先轉換字符串為整數(shù)
if Code< >0 then
Application.MessageBox(Str,'提示信息',
MB_OK+MB_ICONINFORMATION)
//如果轉換后的數(shù)據(jù)不是一個整型數(shù)就通過消息框來顯示字符串
else
if (V=0)or(V=1)or(V=2) then
ExitWindowsEx(V,0)
//調用Windows的API函數(shù)(V=0表示重新登錄、
V=1表示關機、V=2表示重啟動)
else
Application.MessageBox(Str,'提示信息',
MB_OK+MB_ICONINFORMATION);
//轉換后數(shù)據(jù)不為0、1、2時在消息框內顯示字符串
end;
---- 3、修改項目文件,不讓窗口顯示并且防止它運行兩次,修改begin和end之間的代碼如下:
begin
Application.Initialize;
if FindWindow('TForm1','Form1')=0 then begin
//當沒有找到Form1時執(zhí)行下面代碼
Application.ShowMainForm:=False; //不顯示主窗口
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
四、注意事項
---- 1、網(wǎng)絡要裝配正確并安裝TCP/IP協(xié)議,且要正常運行。
---- 2、首先要運行被控程序。
---- 3、必須知道對方的IP地址或主機名。
---- 上述程序用Delphi5.0編寫,在Windows98對等網(wǎng)、WindowsNT4.0局域網(wǎng)以及Internet上運行通過。最后要聲明的是此程序由于能夠控制對方的計算機,在實驗時要事先經(jīng)過他人同意,不要給別人造成影響。