Página 1 de 1

[Función] SystemPowerStatus

Publicado: 09 Ene 2010, 01:34
por skyweb07
Bueno aqui una función para obtener información acerca de el estado de la alimentación de corriente del sistema :D

Código: Seleccionar todo

Option Explicit

'---------------------------------------------------------------------------------------
' Función     : SystemPowerStatus
' Fecha       : 09/10/2010 2:34 AM
' Autor        : Skyweb07
' Email       : [email protected]
' Web        : http://www.skyweb-productions.org
' Própsito    : Recupera información sobre el estado de la alimentación del sistema.
'               El estado indica si el sistema está funcionando con corriente alterna
'               o corriente continua, si la batería está cargando, y la cantidad de vida
'               de la batería queda.
'
'---------------------------------------------------------------------------------------

Public Type SYSTEM_POWER_STATUS
        ACLineStatus As Byte
        BatteryFlag As Byte
        BatteryLifePercent As Byte
        Reserved1 As Byte
        BatteryLifeTime As Long
        BatteryFullLifeTime As Long
End Type

Public Declare Function GetSystemPowerStatus Lib "kernel32" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long

Public Function SystemPowerStatus() As String
    
    Dim SI      As SYSTEM_POWER_STATUS
 
    If GetSystemPowerStatus(SI) Then
        
        SystemPowerStatus = "Estado de conexión del cable : "
        
        Select Case SI.ACLineStatus
                
            Case 0:     SystemPowerStatus = SystemPowerStatus & "Desconectado." & vbCrLf
            Case 1:     SystemPowerStatus = SystemPowerStatus & "Conectado." & vbCrLf
            Case 255:   SystemPowerStatus = SystemPowerStatus & "Desconocido." & vbCrLf
                    
        End Select
        
        SystemPowerStatus = SystemPowerStatus & "Estado de la bateria : "
        
        Select Case SI.BatteryFlag
        
            Case 1:     SystemPowerStatus = SystemPowerStatus & "Capacidad Alta +60%" & vbCrLf
            Case 2:     SystemPowerStatus = SystemPowerStatus & "Capacidad Baja -33%" & vbCrLf
            Case 3:     SystemPowerStatus = SystemPowerStatus & "Capacidad Crítica -5%" & vbCrLf
            Case 8:     SystemPowerStatus = SystemPowerStatus & "Cargandose..." & vbCrLf
            Case 128:   SystemPowerStatus = SystemPowerStatus & "No presente." & vbCrLf
            Case 255:   SystemPowerStatus = SystemPowerStatus & "Desconocido." & vbCrLf

        End Select
        
        If SI.BatteryLifePercent <> 255 Then
            
            SystemPowerStatus = SystemPowerStatus & "Porciento de carga de la batería : " & SI.BatteryLifePercent & "%" & vbCrLf
            
        End If
        
        If SI.BatteryLifeTime <> -1 Then
            
            Dim hData As String
            
            If SI.BatteryLifeTime > 60 Then
               
                hData = Format$(SI.BatteryLifeTime / 60, "##,##") & " Minutos."
                
            Else
            
                hData = Format$(SI.BatteryLifeTime, "##") & " Segundos."
            
            End If
            
            SystemPowerStatus = SystemPowerStatus & "Minutos restantes de la batería : " & hData
 
        End If
        
    End If

End Function

Re: [Función] SystemPowerStatus

Publicado: 09 Ene 2010, 02:06
por skyweb07
Nop no es de la api guise, todos los valores de retorno de las variable fueron tomadas de la mdsn de Microsoft , puedes consurtarlo si deseas para que veas todos los parámetros que están en la mdsn fueron los que yo puse , Ahora mismo no te pongo el link de la mdsn porque estor desde el iPod pero mañana te lo pongo, o simplemente pon la api en la parte de library de Microsoft y veras toda la información justo como yo la tengo ;) saludos.

PD: si ves la descripción de el proyecto veras que es una traduccioncon elgoogle translator de la de mdsn, en todo casi si que no puse la URL a mdsn , fallo mío .

Re: [Función] SystemPowerStatus

Publicado: 09 Ene 2010, 02:15
por skyweb07
xD el problema es que aquí son la 3 de l mañana y no tengo sueno pero se me acabo la batería del portátil justo cuando termine de hacerel post por eso es que estoy ahora desde el iPod touch jajaja saludos