xaero1982
Goto Top

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 face-smile 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 face-smile Jemand eine Idee?

Gruß

Content-Key: 239821

Url: https://administrator.de/contentid/239821

Printed on: April 16, 2024 at 16:04 o'clock

Member: sk-it83
sk-it83 Jun 03, 2014 at 05:29:46 (UTC)
Goto Top
Hallo,


also der Bereich müsste sich einfach nur "Infobereich" schimpfen.

Leider keine Idee wie du das icon hinbekommst, aber vllt. reicht dir auch Windows Taste + x ?


VG
Member: Xaero1982
Xaero1982 Jun 03, 2014 at 06:34:16 (UTC)
Goto Top
Moin,

ok....

Guckst du Kategorie face-smile

Gruß
Member: pieh-ejdsch
pieh-ejdsch Jun 03, 2014 at 06:37:55 (UTC)
Goto Top
Moin Xaero,

Schau mal in meinen Tips nach.
Wechsel vom Energiesparplan oder so ähnlich.

Gruß Phil
Member: sk-it83
sk-it83 Jun 03, 2014 at 06:54:53 (UTC)
Goto Top
Wie meinst du das den?

Windows 7 und weiter?
Member: colinardo
Solution colinardo Jun 03, 2014, updated at Nov 28, 2017 at 11:07:11 (UTC)
Goto Top
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):
#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
Das ganze sieht dann so aus:

7c8278f957bd9cba4ac5ede834a090e8


Grüße Uwe
Member: Xaero1982
Xaero1982 Jun 03, 2014 at 07:23:42 (UTC)
Goto Top
Danke Phil, aber wie gesagt: Keine Symbolleiste.

Es gibt kein Windows+x unter Windows 7 @ licorit

Danke Uwe, werde ich mir mal ansehen - nachher - muss erst mal arbeiten face-smile

Gruß
Member: sk-it83
sk-it83 Jun 03, 2014 at 07:52:38 (UTC)
Goto Top
Doch gibt es schon, aber nur wenn man ein Notebook hat ;)

Dachte die Option steht unter dem Desktop Windows 7 auch zur Verfügung.
Member: Xaero1982
Xaero1982 Jun 03, 2014 at 21:56:25 (UTC)
Goto Top
UWE! Du bist DER Hammer face-smile

Das ist quasi perfekt was du da gebaselt hast!

1000 Dank face-smile

Gruß