Akku bzw Energiesymbol in der Taskleiste am Desktop-PC
Nabend Zusammen,
mir geht's um folgendes:
Ich würde gerne, wie beim Notebook, das Batteriesymbol in der Taskleiste neben der Uhr haben um schneller auf die Energieoptionen zugreifen zu können.
Die Suchmaschine hab ich schon bemüht, aber da heißt es nur: Geht nicht.
Nun hab ich mir natürlich die Frage gestellt: Wieso geht's dann auf dem Notebook. Hier muss ja eine Prüfung von Akku etc. abhängen. Evtl. kann man Windows das vorgaukeln?
Die zweite Idee war: Wie erstellt man denn selbst Symbole in diesem Bereich der Taskleiste? Die Systemsymbole oder ähnliches. Ich meine die Softwarehersteller bekommen es ja auch hin Wie heißt dieser Bereich neben der Uhr genau?
Was ich nicht will:
Was ich will:
Ich will ein Symbol für die Energieoptionen neben dem Lautsprecher, etc.
Und jetzt seid ihr dran Jemand eine Idee?
Gruß
mir geht's um folgendes:
Ich würde gerne, wie beim Notebook, das Batteriesymbol in der Taskleiste neben der Uhr haben um schneller auf die Energieoptionen zugreifen zu können.
Die Suchmaschine hab ich schon bemüht, aber da heißt es nur: Geht nicht.
Nun hab ich mir natürlich die Frage gestellt: Wieso geht's dann auf dem Notebook. Hier muss ja eine Prüfung von Akku etc. abhängen. Evtl. kann man Windows das vorgaukeln?
Die zweite Idee war: Wie erstellt man denn selbst Symbole in diesem Bereich der Taskleiste? Die Systemsymbole oder ähnliches. Ich meine die Softwarehersteller bekommen es ja auch hin Wie heißt dieser Bereich neben der Uhr genau?
Was ich nicht will:
- Eine Symbolleiste
- Ein Gadget
- Irgendein sonstiges Tool
- Eine Desktopverknüpfung
- Eine Taskleistenverknüpfung
Was ich will:
Ich will ein Symbol für die Energieoptionen neben dem Lautsprecher, etc.
Und jetzt seid ihr dran Jemand eine Idee?
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 239821
Url: https://administrator.de/contentid/239821
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
soweit ich weiß erhält Windows die Information ob es mit einem Akku läuft über ACPI vom Bios oder einem Treiber wie z.B. der einer UPS. Da müsst man sich einen ACPI-Layer schreiben der das Windows unterschiebt. Falls alles nichts nutzt, bau es dir halt mit AutoIt nach (p.s. das Icon kannst du dir ja nach Bedarf in Zeile 5 anpassen):
Das ganze sieht dann so aus:
Grüße Uwe
soweit ich weiß erhält Windows die Information ob es mit einem Akku läuft über ACPI vom Bios oder einem Treiber wie z.B. der einer UPS. Da müsst man sich einen ACPI-Layer schreiben der das Windows unterschiebt. Falls alles nichts nutzt, bau es dir halt mit AutoIt nach (p.s. das Icon kannst du dir ja nach Bedarf in Zeile 5 anpassen):
#NoTrayIcon
#include <Constants.au3>
#include <TrayConstants.au3>
#include <Array.au3>
global $energy_profiles[1][2]
Opt("TrayMenuMode",3)
Opt("TrayOnEventMode",1)
TraySetIcon("powercpl.dll",-1)
TraySetState(1)
$exititem = TrayCreateItem("E&xit")
$energyoptions = TrayCreateItem("Energieoptionen anzeigen ...")
TrayCreateItem("")
TrayItemSetOnEvent($exititem,exitapp)
TrayItemSetOnEvent($energyoptions,start_energy_options)
enumprofiles()
While 1
Sleep(500)
Wend
Func exitapp()
exit
EndFunc
Func start_energy_options()
Run("RunDll32.exe Shell32.dll,Control_RunDLL powercfg.cpl")
EndFunc
Func enumprofiles()
$pid = Run(@ComSpec & " /c powercfg.exe /list",@ScriptDir,@SW_HIDE,$STDOUT_CHILD)
ProcessWaitClose($pid)
$stdout = StdoutRead($pid)
$profiles = StringRegExp($stdout,":\s+([a-f\d-]+)\s+\(([^\)]+)\)",4)
Redim $energy_profiles[UBound($profiles)][2]
for $i = 0 to UBound($profiles) -1
$el = $profiles[$i]
$itmid = TrayCreateItem("Profil: (" & OEM_to_ANSI($el[2]) & ")")
$energy_profiles[$i] = $itmid
$energy_profiles[$i][1] = $el[1]
TrayItemSetOnEvent($itmid,energyprofile_clicked)
Next
GetActiveEnergyScheme()
EndFunc
Func energyprofile_clicked()
$guid = _ArraySearch($energy_profiles,@TRAY_ID)
Run(@ComSpec & " /c powercfg.exe -setactive " & $energy_profiles[$guid][1],@ScriptDir,@SW_HIDE)
GetActiveEnergyScheme()
EndFunc
Func GetActiveEnergyScheme()
$pid = Run(@ComSpec & " /c powercfg.exe /getactivescheme",@ScriptDir,@SW_HIDE,$STDOUT_CHILD)
ProcessWaitClose($pid)
$stdout = StdoutRead($pid)
$profile = StringRegExp($stdout,":\s+([a-f\d-]+)",3)
for $i = 0 to UBound($energy_profiles) - 1
if $energy_profiles[$i][1] = $profile then
TrayItemSetState($energy_profiles[$i],1)
else
TrayItemSetState($energy_profiles[$i],4)
Endif
Next
EndFunc
Func OEM_to_ANSI($text)
$text = DllCall('user32.dll','Int','OemToChar','str',$text,'str','')
Return $text[2]
EndFunc
Grüße Uwe