[Release] mInfo

  • Hallo Community,
    ich möchte euch hiermit meinen ersten Release vorstellen: mInfo
    Es ist ein kleines (ganz kleines) Tool, welches mithilfe von UDF's geschrieben wurde, dieses Zeigt ein paar Daten des Computers an.
    Ich release das Programm, um für zuküftiges zu üben und gewissen Problemen o.Ä. schon im vorraus aus dem Weg zu gehen.


    Hier ein Screenshot des kleinen Tools:
     [Blockierte Grafik: http://munksoft.mu.funpic.de/Projects/mInfo/mInfo-Screen.PNG


    Es ist in der Version 1.0, da ich in Zukunft plane das kleine Programm weiterhin weiterzuentwickeln, um dazu zu lernen.

    Ich hoffe euch gefällt das kleine Programm schonmal, über konstruktive Kritik, Vorschläge etc. freue ich mich!

    Download


    Weitere Informationen sowie Updates gibt es auf meiner Seite munkee.tk  

  • Bitte poste auch immer deinen Code dazu, sonst können wir dir ja auch nicht helfen etwas zu verbessern ;) Außerdem führt niemand gerne eine reine Exe-Datei aus...

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Oh, tut mir Leid, total vergessen. :)

    mInfo.au3
    [autoit]


    #include <Functions.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $iState = _GetNetConnection()
    $iOldState = $iState

    [/autoit] [autoit][/autoit] [autoit]

    $cState = _Battery_IsCharging()
    $cOldState = $cState
    Switch $cState
    Case True
    $cStateText = "Lädt"
    Case False
    $cStateText = "Entlädt"
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $Charge = _Battery_GetCharge()
    $OldCharge = _Battery_GetCharge()

    [/autoit] [autoit][/autoit] [autoit]

    $Voltage = _Battery_GetVoltage()
    $OldVoltage = $Voltage

    [/autoit] [autoit][/autoit] [autoit]

    $CPU = GetCPUUsage()
    $OldCPU = $CPU

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate("mInfo", 161, 133, -1, -1, -1, -1)
    If ($iState == True) Then
    $NetLabel = GUICtrlCreateLabel("Verbunden", 50, 110, 81, 15, -1, -1)
    GUICtrlSetColor($NetLabel, "0x00FF00")
    Else
    $NetLabel = GUICtrlCreateLabel("Nicht Verbunden", 50, 110, 81, 15, -1, -1)
    GUICtrlSetColor($NetLabel, "0xFF0000")
    EndIf
    GUICtrlCreateLabel("Internet:", 10, 110, 41, 15, -1, -1)
    GUICtrlCreateLabel("Akkuladung: ", 10, 10, 83, 15, -1, -1)
    $cStateLabel = GUICtrlCreateLabel("Akkustatus: " & $cStateText, 10, 30, 91, 15, -1, -1)
    $ChargeLabel = GUICtrlCreateLabel(_Battery_GetCharge() & "%", 73, 10, 83, 15, -1, -1)
    $VoltageLabel = GUICtrlCreateLabel("Spannung: " & _Battery_GetVoltage() & "V", 10, 50, 98, 15, -1, -1)
    $CPULabel = GUICtrlCreateLabel("CPU: " & GetCPUUsage() & "%", 10, 80, 100, 15, -1, -1)
    GUISetState(@SW_SHOW, $gui)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $CPU = GetCPUUsage()
    If $CPU <> $OldCPU Then
    $OldCPU = $CPU
    GUICtrlSetData($CPULabel, "CPU: " & $CPU & "%")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Voltage = _Battery_GetVoltage()
    If $Voltage <> $OldVoltage Then
    $OldVoltage = $Voltage
    GUICtrlSetData($VoltageLabel, "Spannung: " & $Voltage & "V")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Charge = _Battery_GetCharge()
    If $Charge <> $OldCharge Then
    $OldCharge = $Charge
    GUICtrlSetData($ChargeLabel, $Charge & "%")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $cState = _Battery_IsCharging()
    If $cState <> $cOldState Then
    $cOldState = $cState
    If (_Battery_IsCharging() == True) Then
    GUICtrlSetData($cStateLabel, "Akkustatus: Lädt")
    Else
    GUICtrlSetData($cStateLabel, "Akkustatus: Entlädt")
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $iState = _GetNetConnection()
    If $iState <> $iOldState Then
    $iOldState = $iState
    If ($iState == True) Then
    GUICtrlSetData($NetLabel, "Verbunden")
    GUICtrlSetColor($NetLabel, 0x00FF00)
    Else
    GUICtrlSetData($NetLabel, "Nicht Verbunden")
    GUICtrlSetColor($NetLabel, 0xFF0000)
    EndIf
    EndIf
    WEnd

    [/autoit]
    Functions.au3
    [autoit]


    Func _GetNetConnection()
    Local $aReturn = DllCall('connect.dll', 'long', 'IsInternetConnected')
    If @error Then
    Return SetError(1, 0, False)
    EndIf
    Return $aReturn[0] = 0
    EndFunc ;==>_GetNetConnection

    [/autoit] [autoit][/autoit] [autoit]

    Func _Battery_StartUp()
    Local $o_WMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    Return $o_WMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 48)
    EndFunc ;==>_Battery_StartUp

    [/autoit] [autoit][/autoit] [autoit]

    Func _Battery_IsCharging()
    Local $o_item, $_state = Default, $o_object = _Battery_StartUp()
    If IsObj($o_object) Then
    For $o_item In $o_object
    $_state = $o_item.BatteryStatus
    Next
    If $_state < 0 Or $_state > 7 Then
    Return SetError(-2)
    Else
    If $_state = 2 Then
    Return True
    Else
    Return False
    EndIf
    EndIf
    Else
    Return SetError(-1)
    EndIf
    EndFunc ;==>_Battery_IsCharging

    [/autoit] [autoit][/autoit] [autoit]

    Func _Battery_GetCharge()
    Local $o_item, $o_object = _Battery_StartUp()
    If IsObj($o_object) Then
    For $o_item In $o_object
    Return $o_item.EstimatedChargeRemaining
    Next
    Else
    Return SetError(-1)
    EndIf
    EndFunc ;==>_Battery_GetCharge

    [/autoit] [autoit][/autoit] [autoit]

    Func _Battery_GetVoltage()
    Local $o_item, $o_object = _Battery_StartUp()
    If IsObj($o_object) Then
    For $o_item In $o_object
    Return ($o_item.DesignVoltage / 1000)
    Next
    Else
    Return SetError(-1)
    EndIf
    EndFunc ;==>_Battery_GetVoltage

    [/autoit] [autoit][/autoit] [autoit]

    Func GetCPUUsage()
    Local $wbemFlags = 0x10 + 0x20

    [/autoit] [autoit][/autoit] [autoit]

    Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
    Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", $wbemFlags)

    [/autoit] [autoit][/autoit] [autoit]

    Local $c = 0
    Local $sMsg = ""

    [/autoit] [autoit][/autoit] [autoit]

    For $objItem In $colItems
    $sMsg &= "cpu%" & $objItem.LoadPercentage
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $CpuAuslastung = StringSplit($sMsg, "cpu%", 1)

    [/autoit] [autoit][/autoit] [autoit]

    For $n = "0" To $CpuAuslastung[0]
    $c += $CpuAuslastung[$n]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Return (Round($c / $CpuAuslastung[0], 0))
    EndFunc ;==>GetCPUUsage

    [/autoit]

    Edit Oscar: Bitte füge die Scripte zukünftig direkt hier in den Beitrag ein (habe das jetzt mal für Dich erledigt). Pastebin und co. sind eher als Hilfsmittel für die Shoutbox gedacht.

  • Nicht schlecht, hoffentlich wird es in Zukunft umfangreicher und man könnte z.B. das Fenster in verschiedenen Größen mit den ausgewählten Daten anzeigen lassen,
    wenn einem die Verbindung zum Internet nicht interessiert, weil man beispielsweise das Windows-Icon dafür nehmen könnte.

    Desweiteren finde ich das Programm nicht schlecht, ein weiterer Ansatzpunkt wäre z.B. ein Alarm, aber da das nur ein "(m)Info" Tool ist fällt das glaub ich weg.
    Es speichert beispielsweise die Standard Spannung ein und es ertönt eine Meldung mit Alarm wenn die Spannung kritisch sinkt.

    Eine Statistik (evtll. per GDI+) wäre auch sehr empfehlenswert damit man schauen kann wie die CPU beispielsweise beim benutzen aktiv war.
    Statistiken für CPU Usage in % über Zeit, Akkuladung, Akkudauer, usw...

    Gute Arbeit!