vb實現遠程控制
做完了這些準備工作,就可以開始著手編寫代碼了。 在Form窗口上點擊鼠標右鍵,選擇查看代碼,并在代碼窗口中輸入如下代碼: Private Sub Form_Load() Winsock1.RemoteHost = 對方計算機名 '如果想通過對方IP連接的話,請把上面一行改為Winsock1.RemoteHostIP
做完了這些準備工作,就可以開始著手編寫代碼了。
在Form窗口上點擊鼠標右鍵,選擇查看代碼,并在代碼窗口中輸入如下代碼:
Private Sub Form_Load()
Winsock1.RemoteHost = "對方計算機名"
'如果想通過對方IP連接的話,請把上面一行改為Winsock1.RemoteHostIP="對方IP"。
Winsock1.RemotePort = 1001
'可以任意填寫,最好在1000以上
End Sub
Private Sub cmdconnect_Click()
Winsock1.Connect '連接主機
Cmdcommand.Enabled=True '將cmdcommand按鈕設為有效
cmdconnect.Enabled = False
End Sub
Private Sub cmdCommand_Click()
Dim CommandMain As String
CommandMain = InputBox("請輸入命令:", "命令窗口")
Winsock1.SendData CommandMain '向
服務器端發送數據
End Sub
看到這里應該祝賀你,你已經完成了客戶端的編寫。不要這麼吃驚,真的就這麼簡單。
當然前面已經說過,這種程序是由兩部分組成的,所以光學會做客戶端還不夠。你還必須要
編寫一個
服務器端來接受并執行客戶端所發出的命令,否則的話你所發出的命令就會"一去兮
,不復返也"。
編寫服務器端的程序前,必須明確的是:你到底要服務器端計算機做什麼?我們假定要
服務器端計算機在接受到reboot命令后重啟計算機,接受到shutdown命令后關閉計算機,接
受到logoff命令后注銷計算機、接收到close命令后退出本程序以及接受到其他命令后默認為
Message消息。為此我們必須用到Exit
windowsex這個api函數,這個函數的具體用法會在下面
說明。
好了,明確了目的后,我們要做的就是開始著手編寫代碼了。請先將前面編好的客戶端
程序編譯后保存,然后建立新工程,加入一個Winsock1控件,并將控件的Protocol屬性設為
SckTcpProtocol。同客戶端一樣進入代碼窗口加入如下代碼:
'*************************************************************************
Private Const EWX_LOGOFF = 0
Private Const EWX_REBOOT = 2
Private Const EWX_SHUTDOWN = 1
Private Declare Function Exit
WindowsEx Lib "user32" (ByVal uFlags As Long, ByVal
dwReserved As Long) As Long
'*************************************************************************
'以上部分為api函數的聲明部分,請不要做任何修改。
Private Sub Form_Load()
Winsock1.LocalPort = 1001 '注意這里的設置一定要和客戶端中Winsock1.RemotePort所使
用的端口一致,否則將無法使用。
Winsock1.Listen '將1001端口狀態設為監聽狀態
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'處理錯誤如果有錯誤發生則跳過錯誤
On Error Resume Next
If Winsock1.State <> sckClosed Then '如果State狀態為sckClosed,則關閉Winsock
連接。
Winsock1.Close
End If
Winsock1.A
clearcase/" target="_blank" >ccept requestID '接受連接
'處理錯誤如果有錯誤發生則報告出錯提示
If Err Then
MsgBox Error
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'以下部分為定義的簡單協議
Dim strdata As String
Winsock1.getdata strdata '獲取客戶端發出的命令
Select Case strdata
Case "reboot" '當strdata的值為reboot時重新啟動計算機,以下幾條代碼的作用以此類推
。
Exit
WindowsEx EWX_REBOOT, 0
Case "shutdown"
ExitWindowsEx EWX_SHUTDOWN, 0
Case "logoff"
ExitWindowsEx EWX_LOGOFF, 0
Case "close"
end
Case Else
MsgBox strdata,
vbInformation, "消息"
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close '關閉程序時斷開連接
End Sub
原文轉自:http://www.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|