ein aktivieren des bildschirmschoners und der energiesparoptionen zu verhindern.
der code benutzt einen aufruf in der kernel32 lib.
laut MSDN ist minimum win2Kpro.
mit den requester-aufrufen innerhalb der proc ist das natürlich eher ne demo.
vielleicht ist ja es für jemanden nützlich.
Code: Alles auswählen
;****************************************************************************************
;*** prevent sleep-mode
;****************************************************************************************
#ES_CONTINUOUS = $80000000
#ES_DISPLAY_REQUIRED = $00000002
#ES_SYSTEM_REQUIRED = $00000001
Procedure STES_Set( Flag.l )
If OpenLibrary(0, "kernel32")
ret = CallFunction(0, "SetThreadExecutionState", Flag )
If ret = 0
MessageRequester( "Error", "Lib call Failed" )
EndIf
CloseLibrary(0)
Else
MessageRequester( "Error", "Lib open Failed" )
EndIf
EndProcedure
;****************************************************************************************
; activate
STES_Set( #ES_CONTINUOUS | #ES_SYSTEM_REQUIRED | #ES_DISPLAY_REQUIRED )
; the rest is only to demonstrate it works
OpenWindow(0, #PB_Ignore, #PB_Ignore, 140, 60, "Keep Awake")
CreateGadgetList(WindowID(0))
TextGadget(0, 20, 20, 100, 20, "0000 sec", #PB_Text_Center | #PB_Text_Border )
timerstart = ElapsedMilliseconds()
Repeat
EvID = WaitWindowEvent(500)
Select EvID
Case #Null
timer = ( ElapsedMilliseconds() - timerstart ) / 1000
SetGadgetText(0, RSet(Str(timer),4,"0") + " sec" )
Case #PB_Event_CloseWindow
EXIT = 1
EndSelect
Until EXIT
; reset executionstate at the and of the program
STES_Set( #ES_CONTINUOUS )