六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

怎么用Delphi6完成對計算機的遠程控制

[摘要]WinSock是一組API,用于在網絡上傳輸數據和交換信息。雖然現在有很多工具如FTP程序可以在網絡上傳輸數據和文件,但是通過WinSock編程有更大的靈活性,它不需要關心網絡連接的細節,然而用Wi...
WinSock是一組API,用于在網絡上傳輸數據和交換信息。雖然現在有很多工具如FTP程序可以在網絡上傳輸數據和文件,但是通過WinSock編程有更大的靈活性,它不需要關心網絡連接的細節,然而用WinSock編程卻很復雜,但是在Delphi中我們并不需要直接與WinSock的API打交道,因為TClientSocket元件和TServerSocket元件(Internet頁)封裝了WinSock的大部分API,使得對WinSock的訪問大大簡化。下面這個遠程控制的例子就很清楚地說明了這個問題,它可以發送一個消息給對方,并能夠使對方的電腦關閉、重新啟動或重新登錄。

一、實現原理
  實行遠程控制,實際上就是一個服務器程序(以下簡稱被控程序)和一個客戶程序(以下簡稱主控程序):被控方即為服務器程序,它監聽客戶的請求,并作出處理;主控方即為客戶程序,它連接上服務器后,發出自己的請求,服務器便根據自已的請求進行不同的響應。

二、編寫主控程序
  新建一個項目Client.dpr,并把一個TClientSocket元件放到Form上,它的屬性設置如下:Port設為100(端口號可任意設置,只要求雙方統一),其它屬性按默認值。在窗體上添加兩個TEdit:Edit1用來輸入發送的字符,Edit2用來輸入IP地址;添加兩個TButton:Button1點擊后用來連接被控機,Button2點擊后用來發送字符,然后聲明一個私有變量ConnectFlag,表示雙方是否連接好:


private
ConnectFlag:Boolean;

---- 2、ClientSocket1的OnConnect事件代碼如下:


procedure TForm1.ClientSocket1Connect
(Sender: TObject;Socket: TCustomWinSocket);
begin
ConnectFlag:=True; //表示連接成功
end;

---- 3、ClientSocket1的OnError事件代碼如下:


procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent:
TErrorEvent;var ErrorCode: Integer);
begin
Application.MessageBox(PChar(' 不能連接到IP地址
: ' + Edit2.Text+'。'+
#13+'可能是監聽程序沒有運行或網絡故障!'),'
連接錯誤',MB_OK+MB_ICONSTOP);
ErrorCode := 0;
end;

---- 4、Button1的OnClick事件代碼如下:


procedure TForm1.Button1Click(Sender: TObject);
begin
with ClientSocket1 do begin
if Active then begin
Active := False;//在連接之前首先關閉
ConnectFlag:=False; //置連接標志為假
end;
if Length(Edit2.Text) > 0 then begin
Host := Edit2.Text; //指定IP地址或主機名
Active := True;
end;
end;
end;

---- 5、Button2的OnClick事件代碼如下:


procedure TForm1.Button2Click(Sender: TObject);
begin
if ConnectFlag then
ClientSocket1.Socket.SendText(Edit1.Text)
//如果連接成功則發送字符串
else
Application.MessageBox(PChar(' 沒有連接到地址 :
' + Edit2.Text+'。'+
#13+'檢查IP地址是否存在或是否已經連接!'),'
提示信息',MB_OK+MB_ICONSTOP);
end;

三、編寫被控程序
---- 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); //處理接收的字符串,首先轉換字符串為整數
if Code< >0 then
Application.MessageBox(Str,'提示信息',
MB_OK+MB_ICONINFORMATION)
//如果轉換后的數據不是一個整型數就通過消息框來顯示字符串
else
if (V=0)or(V=1)or(V=2) then
ExitWindowsEx(V,0)
//調用Windows的API函數(V=0表示重新登錄、
V=1表示關機、V=2表示重啟動)
else
Application.MessageBox(Str,'提示信息',
MB_OK+MB_ICONINFORMATION);
//轉換后數據不為0、1、2時在消息框內顯示字符串
end;

---- 3、修改項目文件,不讓窗口顯示并且防止它運行兩次,修改begin和end之

間的代碼如下:


begin
Application.Initialize;
if FindWindow('TForm1','Form1')=0 then begin
//當沒有找到Form1時執行下面代碼
Application.ShowMainForm:=False; //不顯示主窗口
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.

四、注意事項
---- 1、網絡要裝配正確并安裝TCP/IP協議,且要正常運行。

---- 2、首先要運行被控程序。

---- 3、必須知道對方的IP地址或主機名。

不過要注意的是,此程序可以遠程控制對方的計算機,請慎用.如果出現問題,筆者概不負責. 


主站蜘蛛池模板: 日韩欧美一区二区三区中文精品 | 色视频久久| 日本香蕉一区二区三区 | 主播国产 | 伊人久久中文字幕久久cm | 五月婷婷丁香在线视频 | 午夜啪啪免费视频 | 在线观看黄日本高清视频 | 天堂网www在线资源链接 | 亚洲网址在线 | 欧美特黄a级高清免费大片 欧美桃色视频 | 日本乱中文字幕系列在线观看 | 色综合久| 青娱乐在线视频播放 | 日本免费观看日本高清视频 | 偷自视频区视频真实在线 | 色干网 | 人人草人人爱 | 日日摸夜夜爽夜夜爽出水 | 日韩在线天堂 | 四虎影院大全 | 日日操夜夜骑 | 天天操天天射天天舔 | 亚洲永久免费网站 | 天天射综合网站 | 欧美一区二区三区激情啪啪 | 正在播放麻豆 | 天天干夜夜做 | 青青草视频国产 | 色综合小说天天综合网 | 午夜91| 午夜精品视频在线观看 | 午夜性色福利视频 | 欧美污视频 | 亚洲第二十页 | 热久久伊人 | 亚洲成综合人影院在院播放 | 中文字幕色综合久久 | 亚洲啊v| 亚洲福利一区二区 | 欧美中文字幕在线视频 |