Seite 2 von 3
Verfasst: 26.01.2005 23:59
von Laurin
Code: Alles auswählen
#SC_MONITORPOWER = $F170
MessageRequester("Monitor-Spielereien","Monitor ausschalten...",0)
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 2)
Delay(2000)
MessageRequester("Monitor-Spielereien","Monitor StandBy schalten...",0)
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 1)
Delay(2000)
MessageRequester("Monitor-Spielereien","Monitor einschalten...",0)
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, -1)
Delay(2000)
Quelle:
http://board.softpedia.com/lofiversion/ ... p/t92.html
Funktioniert sogar.
Aber kann mir einer den Unterschied zwischen Monitor ausschalten und Monitor Stand-By-schalten erklären?
Verfasst: 27.01.2005 00:05
von Kiffi
> Aber kann mir einer den Unterschied zwischen Monitor ausschalten und
> Monitor Stand-By-schalten erklären?
Der Hauptunterschied liegt wohl im Stromverbrauch, der bei ausgeschaltetem
Montor so gegen Null tendieren wird.
Grüße ... Kiffi
Verfasst: 27.01.2005 00:37
von Laurin
Aber diese beiden Codes tun dasselbe (in meinen Augen). Und laut Beschreibung schaltet der eine den Bildschirm aus, während der Andere nur den StandBy-Betrieb einschaltet.
Wo ist hier der Unterschied (bis auf die eine Zahl)?
Code: Alles auswählen
#SC_MONITORPOWER = $F170
MessageRequester("Monitor-Spielereien","Monitor ausschalten...",0)
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 2)
Delay(2000)
Code: Alles auswählen
#SC_MONITORPOWER = $F170
MessageRequester("Monitor-Spielereien","Monitor StandBy schalten...",0)
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 1)
Delay(2000)
Verfasst: 27.01.2005 18:46
von Monstalocke
hey cool danke,
habt ihr vielleicht noch ne Ahnung wie ich raus krieg ob der Bildschirm eingeschaltet ist oder nicht?
Verfasst: 27.01.2005 21:36
von crX
auf das kleine lämpchen schaun
@Laurin: Bei mir kommt da auch dasselbe Resutat raus.
Verfasst: 28.01.2005 00:14
von GPI
Es ist vermutlich eine Frage der Definition...
Meine Definition ist, das beim ausschalten ich ein Schalter am gerät (ein netzschalter; nicht ein taster) drücken muß, da das komplette Gerät keinen Saft>Funktion hat. Ergo kann man ein ausgeschaltetes Gerät nicht per Software wieder einschalten...
Verfasst: 28.01.2005 01:13
von ts-soft
vielleicht so?
Code: Alles auswählen
Procedure SetSuspendState(Hibernate.l, ForceCritical.l, DisableWakeEvent)
DLL = OpenLibrary(#PB_Any, "Powrprof.dll")
CallFunction(DLL, "SetSuspendState", Hibernate, ForceCritical, DisableWakeEvent)
CloseLibrary(DLL)
EndProcedure
Verfasst: 28.01.2005 01:15
von ts-soft
vorher überprüfen obs geht:
Code: Alles auswählen
Procedure IsPwrSuspendAllowed()
DLL = OpenLibrary(#PB_Any, "Powrprof.dll")
Result = CallFunction(DLL, "IsPwrSuspendAllowed")
CloseLibrary(DLL)
ProcedureReturn Result
EndProcedure
Re: Bildschirm ein/aus- schalten
Verfasst: 20.03.2011 04:33
von OnkelM
Leider funktioniert hier der API aufruf nicht. Debug #HWND_BROADCAST gibt auch nen komischen wert, oder besser gesagt, ein SendMessage_ damit bringt das Programm zum hängen.
Funktioniert es mit der aktuellen pb version noch ?
Code: Alles auswählen
#SC_MONITORPOWER = $F170 ; = 61808
#WM_SYSCOMMAND = $112 ; = 274
Procedure SetMonitor(State = 1)
Select State
Case 3 ; Wake up
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, -1)
Case 2 ; Shut down
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 2)
Default; Standby
SendMessage_(#HWND_BROADCAST, #WM_SYSCOMMAND, #SC_MONITORPOWER, 1)
EndSelect
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 150, 50, "Monitor ausschalten?", #PB_Window_SystemMenu | #PB_Window_Tool)
ButtonGadget(0, 20, 10, 50, 30, "Suspend")
ButtonGadget(1, 80, 10, 50, 30, "Hibernate")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
SetMonitor()
Delay(2000)
SetMonitor(3)
Case 1
SetMonitor(2)
Delay(2000)
SetMonitor(3)
EndSelect
EndSelect
ForEver
End
Re: Bildschirm ein/aus- schalten
Verfasst: 20.03.2011 12:05
von c4s
Liegt nicht an der Version von PureBasic sondern eher an deiner Windows-Version bzw. den entsprechenden Einstellungen bezüglich Stromsparen etc.
Hier auf Windows XP funktioniert es.