Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details

If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.

Erweiterung der PowerBroadcast Meldungen?

Allgemeines zum Thema EventGhost
Post Reply
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Erweiterung der PowerBroadcast Meldungen?

Post by Bartman »

K├Ânnte man die PowerBroadcastmeldungen vielleicht noch erweitern, so dass alle Events geworfen?
Hintergrund ist, dass meine Soundkarte bei der Wiedergabe verhindert, dass man in den Standby Modus gelangt und beim System.Suspend den Stopp-befehl zu schicken ist zu sp├ñt. Konkret br├ñuchte ich nur QuerySuspend, aber da k├Ânnte man doch gleich alle einbauen.
Irgendwie fehlt mir doch ein switch-Statement in Python

Ich hab das sogar schon ausprobiert

Code: Select all

	    if wparam == win32con.PBT_APMBATTERYLOW:
	        eg.eventThread.TriggerEventWait("BatteryLow", prefix="System")
	    elif wparam == win32con.PBT_APMOEMEVENT:
	        eg.eventThread.TriggerEventWait("OEMEvent", prefix="System")
	    elif wparam == win32con.PBT_APMPOWERSTATUSCHANGE:
	        eg.eventThread.TriggerEventWait("PowerStatursChange", prefix="System")
	    elif wparam == win32con.PBT_APMQUERYSUSPEND:
	        eg.eventThread.TriggerEventWait("QuerySuspend", prefix="System")
	    elif wparam == win32con.PBT_APMQUERYSUSPENDFAILED:
	        eg.eventThread.TriggerEventWait("QuerySuspendFailed", prefix="System")
	    elif wparam == win32con.PBT_APMRESUMEAUTOMATIC:
	        eg.eventThread.TriggerEventWait("ResumeAutomatic", prefix="System")
	    elif wparam == win32con.PBT_APMRESUMECRITICAL:
	        eg.eventThread.TriggerEventWait("ResumeCritical", prefix="System")
	    elif wparam == win32con.PBT_APMRESUMESUSPEND:
	        eg.eventThread.TriggerEventWait("Resume", prefix="System")
	    elif wparam == win32con.PBT_APMSUSPEND:
	        eg.eventThread.TriggerEventWait("Suspend", prefix="System")
	    elif wparam == win32con.PBT_POWERSETTINGCHANGE:
	        eg.eventThread.TriggerEventWait("PowerSettingsChange", prefix="System")
Solche Methoden im Autostart zu überschreiben geht nicht zufällig?

Und dann hab ich auch noch am UIRT2 PlugIn rumgefummelt, um beliebige Kommandas abzusetzen und vielleicht meinem StandBy-Problem auf die Spur zu kommen. Wie kann ich denn effektiv verhindern, dass ich mir solche Änderungen beim Update überschreibe?
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Bartman wrote:Irgendwie fehlt mir doch ein switch-Statement in Python
Irgendwann soll Python auch noch ein Switch-Statement kriegen, bin mir aber nicht sicher, ob das schon für Python 2.5 geplant ist. Tatsächlich ist das Switch-Statement aber nichts, was eine neue Funktionalität schaffen würde und deshalb wurde es ewig diskutiert, ob es kommen soll oder nicht. Denn sowas widerspricht etwas der Python-Philosophie.

In dem Fall geht es sogar noch effizienter, wenn man ein Dictionary statt vieler elif nimmt.
Bartman wrote:Solche Methoden im Autostart zu überschreiben geht nicht zufällig?
Hmm, eigentlich gibt es in Python kaum etwas, was nicht gehen w├╝rde. Probier das mal:
eg.deviceChangeNotifier.wc.lpfnWndProc[win32con.WM_POWERBROADCAST] = MyOnPowerBroadcast
Kann ich gerade nicht testen, weil meine Workstation auf einmal nicht mehr aus dem Standby wieder erwachen will.
Bartman wrote:Und dann hab ich auch noch am UIRT2 PlugIn rumgefummelt, um beliebige Kommandas abzusetzen und vielleicht meinem StandBy-Problem auf die Spur zu kommen. Wie kann ich denn effektiv verhindern, dass ich mir solche Änderungen beim Update überschreibe?
Mache einfach ein eigenes Plugin, also z.B. UIRT2b.
Dann musst du vorher aber noch direkt in der XML-Datei den Aufruf des Plugins anpassen, damit du nicht deine TransmitIR-Aktionen verlierst.

Aus:
<Plugin File="UIRT2" Identifier="UIRT2">
musst du dann machen:
<Plugin File="UIRT2b" Identifier="UIRT2">
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

das mit dem ersetzen geht sogar. Spricht denn was dagegen, dass in den offiziellen Source aufzunehmen?
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Ja, kann ich demnächst mal einpflegen.
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Ist in 707 drin.
Post Reply