Access - Hora de encendido de la PC

 
Vista:

Hora de encendido de la PC

Publicado por Juanjo (238 intervenciones) el 26/10/2004 13:46:53
Hola:

Necesito saber si existe la posibilidad de establecer a qué hora fué encendida la PC o el tiempo transcurrido desde que fué encendida (de hecho se puede ver en la info del sistema). Supongo que debe hacerse a través de alguna API, pero estuve buscando con el programa APIGuide y no encuentro lo que busco.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener la hora de encendido de la PC o tiempo transcurrido desde el encendido

Publicado por Alejandro (4142 intervenciones) el 15/05/2023 17:13:54
En Access, puedes obtener la hora de encendido de la PC o el tiempo transcurrido desde el encendido utilizando la función de la API de Windows llamada GetTickCount. Esta función devuelve el número de milisegundos transcurridos desde que se encendió la PC. A continuación, puedes convertir este valor en el formato de hora deseado.

Aquí tienes un ejemplo de cómo puedes utilizar esta función en VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Compare Database
Option Explicit
 
Private Declare Function GetTickCount Lib "kernel32" () As Long
 
Public Function ObtenerHoraEncendido() As Date
    ' Obtener el número de milisegundos transcurridos desde el encendido
    Dim tiempoTranscurrido As Long
    tiempoTranscurrido = GetTickCount()
 
    ' Calcular la hora actual restando el tiempo transcurrido
    Dim horaActual As Date
    horaActual = Now() - tiempoTranscurrido / (1000 * 60 * 60 * 24) ' Convertir a días
 
    ObtenerHoraEncendido = horaActual
End Function
 
Public Function ObtenerTiempoTranscurrido() As String
    ' Obtener el número de milisegundos transcurridos desde el encendido
    Dim tiempoTranscurrido As Long
    tiempoTranscurrido = GetTickCount()
 
    ' Calcular el tiempo transcurrido en formato HH:MM:SS
    Dim horas As Long, minutos As Long, segundos As Long
    horas = tiempoTranscurrido \ (1000 * 60 * 60)
    minutos = (tiempoTranscurrido Mod (1000 * 60 * 60)) \ (1000 * 60)
    segundos = ((tiempoTranscurrido Mod (1000 * 60 * 60)) Mod (1000 * 60)) \ 1000
 
    ObtenerTiempoTranscurrido = Format(horas, "00") & ":" & Format(minutos, "00") & ":" & Format(segundos, "00")
End Function

Puedes llamar a la función `ObtenerHoraEncendido` para obtener la hora de encendido de la PC, y la función `ObtenerTiempoTranscurrido` para obtener el tiempo transcurrido desde el encendido en formato HH:MM:SS.

Recuerda que estas funciones utilizan la API de Windows y pueden no ser precisas al 100%. Además, ten en cuenta que la función `GetTickCount` devuelve el tiempo transcurrido desde el encendido de la PC, no la fecha exacta del encendido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar