hi,
üblicherweise stelle ich die "Energie Verwaltung" auf "full Power" und lasse ihn auch nicht die Netzwerkkarte "abschalten".
Nun gibt es ja, bei Notebook´s, oft die Option zu definieren was passieren soll, wenn man den "Deckel zumacht".
Wenn man ihm sagt "runter-fahren" ist das wohl ein WM_QUIT und die Xbase++ Application kann darauf "reagieren", aber was ist mit "Standby" ?
kann man, und wenn wie, auf ein "Standby" reagieren ?
Notebook : Deckel "zu" -> Standby
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Notebook : Deckel "zu" -> Standby
Hallo, Jimmy.
Es wird ein WMI-Event ausgelöst, auf das Du reagieren kannst. Du müsstest also in Deinem Eventhandler ständig abfragen, ob "suspend" oder "hibernate" ausgelöst werden. Schau Dir mal das VB-Beispiel hier an (dritter Beitrag):
http://www.pcreview.co.uk/forums/thread-434504.php
Es wird ein WMI-Event ausgelöst, auf das Du reagieren kannst. Du müsstest also in Deinem Eventhandler ständig abfragen, ob "suspend" oder "hibernate" ausgelöst werden. Schau Dir mal das VB-Beispiel hier an (dritter Beitrag):
http://www.pcreview.co.uk/forums/thread-434504.php
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Notebook : Deckel "zu" -> Standby
hi,
Ich habe ja eine WMI "Generator" der mir das erzeugt:Problem : "no Property found ?"
Danke für den Hinweis.Tom hat geschrieben:Es wird ein WMI-Event ausgelöst, auf das Du reagieren kannst. Du müsstest also in Deinem Eventhandler ständig abfragen, ob "suspend" oder "hibernate" ausgelöst werden. Schau Dir mal das VB-Beispiel hier an (dritter Beitrag):
http://www.pcreview.co.uk/forums/thread-434504.php
Ich habe ja eine WMI "Generator" der mir das erzeugt:
Code: Alles auswählen
#include "common.ch"
#include "os.ch"
#define CRLF CHR(13)+CHR(10)
#PRAGMA LIBRARY("ASCOM10.LIB")
STATIC lVISTA := .F.
PROCEDURE Main(strComputer,cUser,cPassword)
LOCAL objWMIService
LOCAL colItems
LOCAL cText
LOCAL cName
LOCAL bCollBlock
LOCAL i,iMax
LOCAL j,jMax
LOCAL aitem := {}
LOCAL aProp := {;
"EventType",;
"OEMEventCode",;
"SECURITY_DESCRIPTOR" }
DEFAULT strComputer TO "Localhost"
DEFAULT cUser TO "Administrator"
DEFAULT cPassword TO ""
CLS
SET ALTER TO Win32_PowerManagementEvent.TXT
SET ALTER ON
IF "VISTA" $ OS(OS_PRODUCT) .OR. "WIN2003" $ OS(OS_PRODUCT) .OR. "WIN2008" $ OS(OS_PRODUCT)
lVISTA := .T.
ENDIF
IF lVISTA
IF strComputer == "Localhost"
objWMIService := CreateObject( "WbemScripting.SWbemLocator" ):ConnectServer(strComputer, "Root\CIMv2")
ELSE
IF EMPTY(cPassword)
MSGBOX("Need Password")
QUIT
ELSE
objWMIService := CreateObject( "WbemScripting.SWbemLocator" ):ConnectServer(strComputer, "Root\CIMv2",strComputer+"\"+cUser,cPassword)
ENDIF
ENDIF
ELSE
objWMIService := GetObject("WinMgmts:{impersonationLevel=impersonate}\\"+strComputer+"\Root\CIMv2")
ENDIF
colItems := objWMIService:ExecQuery("select * from Win32_PowerManagementEvent",,48)
bCollBlock := {|oService,n| AADD(aItem,{ n,;
oService:getProperty("EventType"),;
oService:getProperty("OEMEventCode"),;
oService:getProperty("SECURITY_DESCRIPTOR") })}
ComEvalCollection(colItems, bCollBlock )
IF LEN(aItem) > 0
? jMax := LEN(aItem)
? iMax := LEN(aItem[1])
?"*****************************************************************************"
FOR j := 1 TO jMax
FOR i := 1 TO iMax-1
? SUBSTR(aProp[i]+SPACE(40),1,40)+":",aItem[j,i+1]
NEXT
?"*****************************************************************************"
NEXT
ELSE
MSGBOX("no Property found ?")
ENDIF
SET ALTER OFF
SET ALTER TO
Runshell("Win32_PowerManagementEvent.TXT","Notepad.exe",.T.)
RETURN
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Notebook : Deckel "zu" -> Standby
hi,
ein Event ist ja nicht wie eine Property "ständig" erreichbar, deshalb funktioniert meine WMI Routine "so" nicht.
ich müsste das ganze wohl in die DO WHILE Schleife einbinden umden Event zu "erwischen".
nun habe ich weiter geforscht und bin auf WM_POWER bzw WM_POWERBROADCAST gestossen.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Frage : wie bekomme ich den Callback dafür hin ?
ein Event ist ja nicht wie eine Property "ständig" erreichbar, deshalb funktioniert meine WMI Routine "so" nicht.
ich müsste das ganze wohl in die DO WHILE Schleife einbinden umden Event zu "erwischen".
nun habe ich weiter geforscht und bin auf WM_POWER bzw WM_POWERBROADCAST gestossen.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Frage : wie bekomme ich den Callback dafür hin ?
Code: Alles auswählen
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_POWERBROADCAST
WPARAM wParam, // power-management event
LPARAM lParam // function-specific data
);
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Notebook : Deckel "zu" -> Standby
Hi,
trifft das nicht das was du suchst (Auszug aus Hilfe-PDF):
trifft das nicht das was du suchst (Auszug aus Hilfe-PDF):
XppApplication()
Slot: :systemPowerStatus := {| nChange, uNIL, self | ... } --> nResponse
Methode: :systemPowerStatus( <nChange> ) --> nResponse
Parameter
<nChange>
<nChange> ist ein numerischer Wert mit Informationen über die Art der Statusänderung. Die diesem Parameter zugewiesenen Werte sind in der folgenden Tabelle zusammengefasst.
Werte für Parameter <nChange>
Energiestatusänderung Wert und Bedeutung
Aufforderung zum Wechsel Das System benötigt die Erlaubnis in den Ruhezustand zu
wechseln. <nChange> enthält 0 oder 1.
Wechsel in den Ruhezustand Der Computer ist dabei, in den Ruhezustand zu wechseln.
<nChange> enthält 4 oder 5.
Wechsel aus Ruhezustand Der Computer wird nach Ruhezustand wieder ausgeführt.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Notebook : Deckel "zu" -> Standby
hi,
Man oh man ... klar hast du völlig Recht =D> die SL1 hat ja den Slot schon.brandelh hat geschrieben:trifft das nicht das was du suchst (Auszug aus Hilfe-PDF):XppApplication()
Slot: :systemPowerStatus := {| nChange, uNIL, self | ... } --> nResponse
Methode: :systemPowerStatus( <nChange> ) --> nResponse
gruss by OHR
Jimmy
Jimmy