Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cronometrar tiempo de encendido del computador

Estas en el tema de Cronometrar tiempo de encendido del computador en el foro de Visual Basic clásico en Foros del Web. Bueno lo que quiero es crear una especie de reloj que me diga las horas, minutos y segundos que pasaron desde que se encendio el ...
  #1 (permalink)  
Antiguo 30/07/2009, 16:14
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Desacuerdo Cronometrar tiempo de encendido del computador

Bueno lo que quiero es crear una especie de reloj que me diga las horas, minutos y segundos que pasaron desde que se encendio el computador.



Encontre este ejemplo pero solo toma los minutos mediante el api GetTickCount, solo falta hacer los calculos para convertir los minutos en un reloj y la n1h1 me tiene loco jeje, espero me dén una idea para resolverlo

Código:
Private Declare Function GetTickCount& Lib "kernel32" ()


Private Sub Command2_Click()
    ret& = GetTickCount&
    MsgBox Str$(ret& / 60000) + " minutes."
End Sub
  #2 (permalink)  
Antiguo 30/07/2009, 18:14
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Cronometrar tiempo de encendido del computador

Hola, proba esto:

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Declare Function GetTickCount Lib "kernel32" () As Long
  4.  
  5. Private Sub Form_Load()
  6.    MsgBox TiempoEncendidaPC
  7. End Sub
  8.  
  9. Private Function TiempoEncendidaPC() As String
  10.    Dim vHoras As Long, vMinutos As Long, vSegundos As Long
  11.    
  12.    vHoras = Int(GetTickCount / 1000 / 60 / 60)
  13.    vMinutos = Int((GetTickCount / 1000 / 60)) - vHoras * 60
  14.    vSegundos = Int((GetTickCount / 1000)) - vMinutos * 60 - vHoras * 3600
  15.    
  16.    TiempoEncendidaPC = Format(vHoras, "00") & ":" & Format(vMinutos, "00") & ":" & Format(vSegundos, "00")
  17. End Function

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 30/07/2009, 18:28
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cronometrar tiempo de encendido del computador

muy bueno tio, me despejaste la mente, siempre sacaba 0 en matematicas, es en serio.
Ahora tratare de mostrar el tiempo en un label o textbox atravez de un timer, espero no tener problemas al llamar a la funcion TiempoEncendidaPC cada 1 segundo desde el timer, si a alguien se le ocurre una mejor forma bienvenida sea la idea

saludos
  #4 (permalink)  
Antiguo 30/07/2009, 18:42
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Cronometrar tiempo de encendido del computador

pues no te va a pasar nada si la llamas cada un segundo, pero otra opcion es no llamarla mas de una vez...o sea la llamas una sola vez y ahi obtenes el tiempo y despues de ahi directamente en un Timer vas sumando un segundo cada vez que pase y es lo mismo que llamarla...y te lo ahorras..

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #5 (permalink)  
Antiguo 30/07/2009, 19:37
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cronometrar tiempo de encendido del computador

Um!! no se complicaria la cosa ya que la funcion TiempoEncendidaPC devuelve este formato "02:10:59" creo que perdi la percepcion

En todo caso utilizando las variables vHoras, vMinutos , vSegundos podria crear un especie de cronometro, bueno olvidalo tio ahora la cabeza no me da para este asunto si tienes unos segundos me lo resuelves, aunque seguro pensaras que quiero todo servido

saludos
  #6 (permalink)  
Antiguo 30/07/2009, 20:58
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Cronometrar tiempo de encendido del computador

mira lo facil que es...

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Declare Function GetTickCount Lib "kernel32" () As Long
  4.  
  5. Private vTiempoActual As String
  6.  
  7. Private Sub Form_Load()
  8.    vTiempoActual = TiempoEncendidaPC
  9.    With Timer1
  10.       .Enabled = True
  11.       .Interval = 1000
  12.    End With
  13. End Sub
  14.  
  15. Private Function TiempoEncendidaPC() As String
  16.    Dim vHoras As Long, vMinutos As Long, vSegundos As Long
  17.    
  18.    vHoras = Int(GetTickCount / 1000 / 60 / 60)
  19.    vMinutos = Int((GetTickCount / 1000 / 60)) - vHoras * 60
  20.    vSegundos = Int((GetTickCount / 1000)) - vMinutos * 60 - vHoras * 3600
  21.    
  22.    TiempoEncendidaPC = Format(vHoras, "00") & ":" & Format(vMinutos, "00") & ":" & Format(vSegundos, "00")
  23. End Function
  24.  
  25. Private Sub Timer1_Timer()
  26.    Me.Caption = Format(CDate(vTiempoActual) + CDate("00:00:01"), "Hh:mm:ss")
  27.    vTiempoActual = Me.Caption
  28. End Sub

sin llamar a la funcion con el Timer...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #7 (permalink)  
Antiguo 31/07/2009, 17:32
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cronometrar tiempo de encendido del computador

bien tio gracias por los minutos, saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:24.