Título: Sobre Registro Publicado por: Pitoniso en 10 Marzo 2006, 21:21 pm Hola..Estoy haciendo un Formulario que cuando lo descargas comienza un conteo con un Timer para saber el tiempo que ha estado abierto el programa...Estoy trabado en la parte de meter el tiempo que consumio en el Registro y que se guarde ahi para que la proxima ves que se descargue el Formulario busque en el Registro el ultimo tiempo guardado y empieze a contar desde ahi... ;D...
Estoy trabado en la constante que debo utilizar....Pues probe con REG_SZ y me da ERROR.... Salu2 Título: Re: Sobre Registro Publicado por: .Slasher-K. en 10 Marzo 2006, 22:07 pm Depende de cómo trates el tiempo. Una forma sería crear un Timer que aumente el valor de una variable cada un segundo, así podés guardar los datos como REG_DWORD.
Por ejemplo, cuando se inicia el programa lee la clave del registro para saber cuál fue el último valor del contador. Código: Function ReadUpTime() As Long Y para guardar el último valor del contador, sería casi lo mismo: Código: Function WriteUpTime(LastUptime As Long) As Boolean Usá una variable global por ejemplo, y estableces el valor al inicio del formulario: Código: Private lUptime As Long Y cuando se descarga el formulario guardas el valor actual Código: Private Sub Form_Unload(Cancel As Integer) Luego como te decía, el Timer aumentando el valor de la variable cada segundo: Código: Private Sub tmrUptime_Timer() Podrías usar las funciones de fecha y hora pero no podés saber si la fecha y hora del sistema están bien, de esta forma es relativo al programa. Título: Re: Sobre Registro Publicado por: Pitoniso en 12 Marzo 2006, 20:16 pm Mira estuve metiendole COCO a lo que me dijistes y hasta cierto punto entiendo, lo que no tengo bien claro es lo del ir aumentando la VARIABLE + 1.. Yo tengo el siguiente codigo que me hace un Contador.....Tienes que tener un label1....Aqui me empieza el conteo del tiempo...
Private Sub Form_Load() Label1.Caption = "00:00:00" Iniciar = Timer Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Dim dif As Single Dim horas As Integer Dim minutos As Integer Dim segundos As Integer Dim centesimas As Integer If Timer > Iniciar Then dif = Timer - Iniciar Else dif = 86400 - Iniciar + Timer End If centesimas = (dif - Fix(dif)) * 100 horas = Fix(dif) \ 3600 minutos = (Fix(dif) Mod 3600) \ 60 segundos = (Fix(dif) Mod 60) Label1.Caption = Format(horas, "00") & ":" & Format(minutos, "00") & ":" & Format(segundos, "00") DoEvents End Sub Tambien me da este ERROR(http://C:\Documents and Settings\Yamila\Mis documentos\Mis imágenes\Error.bmp) Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Explicame si puedes... Thx Título: Re: Sobre Registro Publicado por: Pitoniso en 12 Marzo 2006, 20:23 pm Este es el Error que me da en la linea"Es necesaria una Expresion de Constante"
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Título: Re: Sobre Registro Publicado por: .Slasher-K. en 14 Marzo 2006, 23:01 pm Falta la constante STANDARD_RIGHTS_ALL, buscala en el Visor de API de Visual Basic.
Lo que decía de sumarle 1 a la variable, era para ir aumentando segundo por segundo el contador de tiempo, así no dependes de la función Timer ni de nada, que es algo variable. Saludos. |