logs mal hechos

Iniciado por Daklon, 31 Octubre 2009, 22:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Daklon

para el keylogger uso GetAsyncKeyState y para que se guarde automaticamente si intervencion del usuario uso este codigo
Private Sub Timer2_Timer()
Dim NumeroArchivo As Integer
Dim ruta As String
archivo = FreeFile
ruta = App.Path & "\log.txt"
Open (ruta) For Append As #archivo
If Text1.DataChanged = True Then
Print #archivo, (Text1)
Text1.Text = ""
Close #archivo
Else
Close #archivo
End If
End Sub


pero al hacer los logs me hace esto

IZ.R]
esto[Espacio]
es[Espacio]una[Espacio]p
rue
[Retroceso]
bapa
ra[Espacio]ver[Espacio]qu
e[Espacio]pasa


eps
e
ro[Espacio]
10[Espacio]s
eg









ya


en ese gran espacio espere 10 seg en los que no deberia escribir nada por el if pero aun asi escribe espacios

pd: le dije que cada vez que guardara pusiera el text1 en blanco porque antes me ponia lo que tenia mas lo nuevo por ejemplo

h
ho
hol
hola

BlackZeroX

#1
Antes que nada usa el Geshi e Indecta tu codigo, es casi imposible leerlo asi como esta.

por otro lado aquí te dejo el codigo un poco mejorado


----------------------------->

EDITO: Corregi unas variables:

Código (Vb) [Seleccionar]

Const Satisfacción = "Se ecribir en el archivo correctamente"
Const Insatisfaccion = "No se a escrito nada por que no hay nada que escribir, o hay un error en el acceso del archivop "
Dim NumeroArchivo           As Integer

Private Sub Form_Load()
Dim Cabecera                As String
Dim Ruta                    As String
Dim ContinuarLog            As Boolean ' Esta variable es solo para que entiendas la función Escribir.

   Ruta = "c:\log.txt"
   NumeroArchivo = FreeFile
   '   //  Se sobre escribe el Log Anterior a este?
   ContinuarLog = True '   //  El true significa que se seguira desde el ultimo byte,
                       '   //  Si se póne False, va ir reemplzando desde el primer byte
   Open Ruta For Binary Access Write As #Archivo
   '   //  Comprobamos el peso del log
   If LOF(NumeroArchivo) > 0 And ContinuarLog Then
       Cabecera = vbCrLf & vbCrLf
   End If
   Cabecera = Cabecera & "Inicio de Archivo Log" & vbCrLf & _
                   vbTab & "Iniciado el Dia: " & Date & vbCrLf & _
                   vbTab & "Hora de Inicio: " & Time & vbCrLf & _
                   vbCrLf & _
                   "--------Inicio del Log----->" & vbCrLf & vbCrLf
   If Escribir(NumeroArchivo, Cabecera, ContinuarLog) Then
       Debug.Print Satisfacción
   Else
       Debug.Print Insatisfaccion
   End If
End Sub
Private Sub Timer1_Timer()
   If Escribir(NumeroArchivo, Text1.Text, True) Then
       Text1.Text = ""
       Debug.Print Satisfacción
   Else
       Debug.Print Insatisfaccion
   End If
End Sub
Private Function Escribir(NumberOFileOpen As Integer, vData As String, Optional UltimoByte As Boolean = False)
On Error GoTo eError:
   If Variable = "" Then
       If UltimoByte = True Then
           Seek #NumberOFileOpen, LOF(NumberOFileOpen) + 1'    // Nos movemos al final del archivo
       End If
       Put #NumberOFileOpen, , vData
       Escribir = True
   End If
   Exit Function
eError:
   Escribir = False
End Function
Private Sub Form_Unload(Cancel As Integer)
   Close NumeroArchivo
End Sub


Dulces Lunas!¡.
The Dark Shadow is my passion.

Daklon

ahora que me fijo hay un error auqneu parece que no afecta

el error es que yo establezco la variable numeroarchivo pero luego uso #archivo

la ruta prefiero usar app.path como estaba porque la idea es que el keylogger se ejecute en un pendrive y como no en todos los ordenas se le asigna la misma letra pues asi me aseguro que se guarda en el pendrive

y el log en mi codigo no se sobreescribe porque uso open "" For append As #Archivo
asi que lo que hace es añadir lo que esta en el text1.text al archivo log.txt

no se si te referias a si se sobreescribe en mi codigo o en que me pasate tu

ese lo pruebo mañana porque creo que em voy a ir ya que estoy cansado  :xD

BlackZeroX

#3
jamas me referi a nada de lo que me citas, lo de la ruta la puse asi por que no deseo mover a C.\archivos\ bla bla bla hasta la carpat de mi visual se entiende?, lo demás si quieres adaptalo a tu proyecto es cosa tuya, yo solo te he puesto un ejemplo.

Lo de Append  si lo entiendo y se que hace. pero no utilizo yo esos ya que para eso uso el acceso Binario en modo aleatorio y el seek()...

tecnicamente te hice este ejemplo por que tu abres y cierras bruscamente el archivo variadas veces en el timer.
The Dark Shadow is my passion.

Daklon

lo hago asi porque creo que esa es la mejor forma ya que me interesa que se quede escrito todo hasta el momento en el que se retira el pendrive

y otra cosa

puedo parecer algo noob pero como uso el geshi? porque el codigo no me lo da en bbcode para poder ponerlo aqui y que salga bien

seba123neo

#5
Cita de: Daklon en  1 Noviembre 2009, 00:44 AM
puedo parecer algo noob pero como uso el geshi?

encerra el codigo entre [ code=vb] [ /code] , (quitale el espacio despues del corchete). y una recomendación es que uses Hook para el teclado, es lo mejor, no tenes que andar renegando con Timers.si buscas en el foro vas a encontrar un monton de ejemplos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson