Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: zerofive en 17 Julio 2006, 18:21 pm



Título: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 17 Julio 2006, 18:21 pm
Estoy haciendo un logeador de ventanas que registra las ventanas activas... :D
ya lo hice pero tambien tengo un inconveniente... :-(
que tengo que dejar un cronometro  :ode cuanto estuvo abierta hasta cuando se cierra... :huh:
y el cronometro lo sé hacer en un label(etiqueta) :P
pero cuando es un textbox...
probe del mismo metodo y me salio ue por cada segundo pone una hora...

<0:0:1><0:0:2><0:03><0:0:4><0:0:5><0:0:6>...etc
creanme que busque:::


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: elmaro en 17 Julio 2006, 19:27 pm
postea la parte del code que usas para el cronometro aver que es lo que esta fallando


El MaRo!


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: Hans el Topo en 18 Julio 2006, 00:27 am
no somos adivinos... xD


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 18 Julio 2006, 22:14 pm
perdon..
Citar
Private Sub Timer2_Timer()
Label6.Caption = "0"

Label3.Caption = Val(Label3.Caption) + 1 'Aumenta 1 al Label3
If Val(Label3.Caption) < 10 Then
    Label3.Caption = "0" & Label3.Caption
End If


    If Val(Label3.Caption) > 59 Then 'Si el label3(Seg) es mayor a 59
        Label3.Caption = "00" 'Volver a cero
        Label2.Caption = Val(Label2.Caption) + 1 'El Label2(Min) suma uno
            If Val(Label2.Caption) < 10 Then
                Label2.Caption = "0" & Label2.Caption
            End If
        If Val(Label2.Caption) > 59 Then 'Si el label2(min) es mayor a 59
            Label2.Caption = "00" 'Vuelve cero
            Label1.Caption = Val(Label1.Caption) + 1 'idem pero con el label1(hs)
           
            If Val(Label1.Caption) < 10 Then
                Label1.Caption = "0" & Label1.Caption
            End If
        End If
    End If

End Sub
y en el Timer1
Citar
Private Sub Timer1_Timer()
On Error Resume Next
Ventana 'Funcion del modulo Nombre_Ventana
Text1.Text = Text1.Text & "|<<" & Label1.Caption & Label4.Caption & Label2.Caption & Label5.Caption & Label3.Caption & ">>>|" 'Agrega al textbox el cronometro
End Sub
y el modulo
Citar
Option Explicit
Declare Function GetForegroundWindow Lib "user32" () As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public LastWindow As String
Public LastHandle As Long
Function Ventana()
Dim Handle As Long
Dim TextLen As Long
Dim WindowText As String
Dim sVar
Handle = GetForegroundWindow 'Obtiene la ventana activa
LastHandle = Handle
TextLen = GetWindowTextLength(Handle) + 1 'Longitud del titulo de la ventana
WindowText = Space(TextLen)
sVar = GetWindowText(Handle, WindowText, TextLen) 'Obtiene titulo de la ventana
WindowText = Left(WindowText, Len(WindowText) - 1)
If WindowText <> LastWindow Then
If Form1.Text1 <> "" Then Form1.Text1 = Form1.Text1 & vbCrLf & vbCrLf
Form1.Text1 = Form1.Text1 & "|<<<<<<<<<<<<<<<<" & Now & ">>>>>>>>>>>>>>>>|" & "***" & "|<<<<<<<<<<<<<<<<" & WindowText & ">>>>>>>>>>>>>>>>|" & vbCrLf 'Escribe en el textbox Fecha,hora y el titulo
LastWindow = WindowText
End If
End Function


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: Hans el Topo en 19 Julio 2006, 00:34 am
perdona mi pregunta pero... una de las primeras lecciones de cualquier programador... es aprender a PONER NOMBRES QUE LE GUIEN Y FACILITEN LAS TAREAS, es obvio que tu eso un poco olvidao...

label3=segundos
label2=minutos
label1=horas
label4= solo aparece una sola vez en todo tu código... ¿qué es?
label5= solo aparece una sola vez en todo tu código... ¿qué es?
label6= solo aparece una sola vez en todo tu código... ¿qué es?

en vez de poner todo el rato
Código:
If Val(Label3.Caption) < 10 Then
    Label3.Caption = "0" & Label3.Caption
End If
hazlo asi...
 
Código:
    Label3.Caption = format(val(label3.caption),"00")   'el val hasta lo pueds quitar

tu txt se supone que añade a
todo lo anteriormente en el mismo txt +
|<<horas(nuse)minutos(nuse)segundos>>>|

otra cosa no veo...
tampoco lo mire muy bien pero creo que esta bien al menos los 2 timers...


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 19 Julio 2006, 01:37 am
los labels que sobran son signos ":"
label3=segundos
label2=minutos
label1=horas
label6 = sentecimas


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: elmaro en 19 Julio 2006, 05:53 am
bueno man ,.aca tengo tu respuesta,.
espro que te sirva,. a mi me funciona muy bien y me has dado una idea:P,. asi que ponte contento :D

Codigo:
en el form
Código:
Private Sub Timer1_Timer()
On Error Resume Next
Ventana 'Funcion del modulo Nombre_Ventana
End Sub

Private Sub Timer2_Timer()
Label3.Caption = Val(Label3.Caption) + 1 'Aumenta 1 al Label3
If Val(Label3.Caption) < 10 Then
    Label3.Caption = "0" & Label3.Caption
End If
    If Val(Label3.Caption) > 59 Then 'Si el label3(Seg) es mayor a 59
        Label3.Caption = "00" 'Volver a cero
        Label2.Caption = Val(Label2.Caption) + 1 'El Label2(Min) suma uno
            If Val(Label2.Caption) < 10 Then
                Label2.Caption = "0" & Label2.Caption
            End If
        If Val(Label2.Caption) > 59 Then 'Si el label2(min) es mayor a 59
            Label2.Caption = "00" 'Vuelve cero
            Label1.Caption = Val(Label1.Caption) + 1 'idem pero con el label1(hs)
           
            If Val(Label1.Caption) < 10 Then
                Label1.Caption = "0" & Label1.Caption
            End If
        End If
    End If

End Sub

En el modulo:
Código:
Function Ventana()
Dim Handle As Long
Dim TextLen As Long
Dim WindowText As String
Dim sVar
Handle = GetForegroundWindow 'Obtiene la ventana activa
LastHandle = Handle
TextLen = GetWindowTextLength(Handle) + 1 'Longitud del titulo de la ventana
WindowText = Space(TextLen)
sVar = GetWindowText(Handle, WindowText, TextLen) 'Obtiene titulo de la ventana
WindowText = Left(WindowText, Len(WindowText) - 1)

If WindowText <> LastWindow Then
'Form1.Text1.Text = Form1.Text1.Text & "|<<" & Now & ">>|" & "***" & "|<<" & WindowText & ">>|" & vbCrLf 'usa esta linea si keres que te aparezca en un text (acuerdate de darle buen tamaño) y poder leer todo,.(con los dos scroolbars)

'Form1.List1.AddItem "|<<" & Now & ">>|" & "***" & "|<<" & WindowText & ">>|" 'y usa esta si lo kieres en un listbox,. si el titulo de la ventana es muy largo no lo leeras completo a no ser que agas el listbox muy amplo

LastWindow = WindowText

End If
End Function


al timer1 le pones 500 en interval para que te vea todas las ventanas,. o un nomero mas bajo
y al timer2,. le pones 1000 de interva,. para que cuente cada 1 segundo,. aunke no es necesario el timer2 xq la fecha y ahra la toma usando "Now"

bueno man espero te guste el code,. trate de no modificartelo tanto
suerte si te funciono me avisas :)





El MaRo!


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 19 Julio 2006, 19:49 pm
me fijare!!!
grax, igual :D


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 20 Julio 2006, 00:05 am
El code anda perfecto solo le hiciste una pequeña modificación
Buena idea ;)
Ahora solo utilizo el listbox...
ya se soy medio "!$·$"%%·&%$...
por no haberme dado cuenta de ese detalle...
pero bueno...
una cosa en vez del "now" que muestra fecha y hora...
hacer que enpieze desde 0...
cuente por si mismo...
y cuando lo cierres que debe de ser cuando el proceso se cierre...
para el cronometro y dice cuanto duro habierto...
yo les pongo el problema...
también buscaré por mi mismo...


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: elmaro en 20 Julio 2006, 05:37 am
de nada :D
cualkier otra duda pregunta nomas





El MaRo!


Título: Re: !!!programa logeador de ventanas¡¡¡
Publicado por: zerofive en 22 Julio 2006, 21:52 pm
una pregunta que trate de resolverla pero no pude me parece que es medio dificil ;D
con el mismo programa que en el modulo asocie el titulo de la ventana con su proceso...

por ej:

que asocie el block de notas con el proceso notepad
que asocie el administrador de tareas de windows con el proceso taskmgr
que asocie el visual basic 6.0 con el proceso vb6