Win32API
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Win32API
Und schon wieder ich^^
Dies mal suche ich die Win32API Befehle zum Herunterfahren, Neustarten, und für den Ruhezustand eines Computers.
Und nicht nur das wie kan ich sie dann einbauen?
Dies mal suche ich die Win32API Befehle zum Herunterfahren, Neustarten, und für den Ruhezustand eines Computers.
Und nicht nur das wie kan ich sie dann einbauen?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
oder http://forums.purebasic.com/german/view ... t=shutdown Bitte schönroherter hat geschrieben:http://www.purebasic-lounge.de/viewtopi ... t=shutdown
Bitte schön.

Weil, dieses funktioniert auch auf NT-Systemen

Zuletzt geändert von ts-soft am 18.11.2005 15:43, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Danke Schön 
@ts-soft
Diesen Beitrag kenne ich bereits und bin nicht schlau daraus geworden
ich habe das jetzt so gemacht nur es passiert leider nichts

@ts-soft
Diesen Beitrag kenne ich bereits und bin nicht schlau daraus geworden

ich habe das jetzt so gemacht nur es passiert leider nichts

Code: Alles auswählen
;-Programm Start
Procedure LogOffControl(flag.l)
Select flag.l
Case 1
ExitWindowsEx_(#EWX_LOGOFF,1)
Case 2
ExitWindowsEx_(#EWX_SHUTDOWN | #EWX_POWEROFF,0)
Case 3
ExitWindowsEx_(#EWX_POWEROFF,0)
Default
ExitWindowsEx_(#EWX_REBOOT,0)
EndSelect
EndProcedure
Open_Window_0()
Repeat
;System Zeit auslesen
Time.l = Date()
HH$ = FormatDate("%hh", Time)
MM$ = FormatDate("%ii", Time)
SS$ = FormatDate("%ss", Time)
;Abfrage für die Aktion die nach ereichen der zeit durchgeführt werden soll.
If HH$=GetGadgetText(#String_0)
If MM$=GetGadgetText(#String_1)
If SS$=GetGadgetText(#String_2)
If go=1
;Die Aktion die durchgefürt wird
If GetGadgetState(#Combo_0)=0
MessageRequester("Überschrift","Herunterfahren",#PB_MessageRequester_Ok)
ElseIf GetGadgetState(#Combo_0)=1
MessageRequester("Überschrift","Nerstart",#PB_MessageRequester_Ok)
ElseIf GetGadgetState(#Combo_0)=2
LogOffControl(3);Ruhestand
;MessageRequester("Überschrift","Ruhezustand",#PB_MessageRequester_Ok)
EndIf
;MessageRequester("Überschrift","Ok Button",#PB_MessageRequester_Ok)
go.l=0
EndIf
EndIf
EndIf
EndIf
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
ja "go" wird auf "1" gesetzt wenn ich den "OK" button betätige.
[EDIT]
Hier noch mal den kompletten Code:
[/EDIT]
[EDIT]
Hier noch mal den kompletten Code:
Code: Alles auswählen
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Frame3D_0
#String_0
#String_1
#String_2
#Button_0
#Button_1
#Combo_0
#Text_1
#Text_3
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 244, 47, 160, 171, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Auschaltenum XX Uhr v.1.0")
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame3D_0, 10, 0, 140, 160, "")
StringGadget(#String_0, 30, 100, 30, 20, "", #PB_String_Numeric)
SendMessage_(GadgetID(#String_0), #EM_LIMITTEXT, 2, 0)
StringGadget(#String_1, 70, 100, 30, 20, "", #PB_String_Numeric)
SendMessage_(GadgetID(#String_1), #EM_LIMITTEXT, 2, 0)
StringGadget(#String_2, 110, 100, 30, 20, "", #PB_String_Numeric)
SendMessage_(GadgetID(#String_2), #EM_LIMITTEXT, 2, 0)
ButtonGadget(#Button_0, 30, 130, 50, 20, "Start")
ButtonGadget(#Button_1, 90, 130, 50, 20, "Abbruch")
ComboBoxGadget(#Combo_0, 40, 70, 90, 20)
AddGadgetItem(#Combo_0,-1, "Herunterfahren")
AddGadgetItem(#Combo_0,-1, "Neustart")
AddGadgetItem(#Combo_0,-1, "Ruhezustand")
SetGadgetState(#Combo_0, 0)
TextGadget(#Text_1, 50, 20, 80, 20, "Timer Einstellung")
TextGadget(#Text_3, 60, 105, 5, 5, "")
EndIf
EndIf
EndProcedure
;-Programm Start
Procedure LogOffControl(flag.l)
Select flag.l
Case 1
ExitWindowsEx_(#EWX_LOGOFF,1)
Case 2
ExitWindowsEx_(#EWX_SHUTDOWN | #EWX_POWEROFF,0)
Case 3
ExitWindowsEx_(#EWX_POWEROFF,0)
Default
ExitWindowsEx_(#EWX_REBOOT,0)
EndSelect
EndProcedure
Open_Window_0()
Repeat
;System Zeit auslesen
Time.l = Date()
HH$ = FormatDate("%hh", Time)
MM$ = FormatDate("%ii", Time)
SS$ = FormatDate("%ss", Time)
;Abfrage für die Aktion die nach ereichen der zeit durchgeführt werden soll.
If HH$=GetGadgetText(#String_0)
If MM$=GetGadgetText(#String_1)
If SS$=GetGadgetText(#String_2)
If go=1
;Die Aktion die durchgefürt wird
If GetGadgetState(#Combo_0)=0
MessageRequester("Überschrift","Herunterfahren",#PB_MessageRequester_Ok)
ElseIf GetGadgetState(#Combo_0)=1
MessageRequester("Überschrift","Nerstart",#PB_MessageRequester_Ok)
ElseIf GetGadgetState(#Combo_0)=2
LogOffControl(3);Ruhestand
;MessageRequester("Überschrift","Ruhezustand",#PB_MessageRequester_Ok)
EndIf
;MessageRequester("Überschrift","Ok Button",#PB_MessageRequester_Ok)
go.l=0
EndIf
EndIf
EndIf
EndIf
;Einen moment Warten (1Milli Sekunde)
Delay(1)
; Event = WaitWindowEvent()
Event = WindowEvent()
Select event
;-Button abfrage
Case #PB_EventGadget ; verzweigung bei Gadgetevents
Select EventGadgetID()
Case (#Button_0) ;Button "OK"
go.l=1
Case (#Button_1) ;Button "Abbrechen"
Gosub Ende
Return
;MessageRequester("Überschrift","Abbruch Button",#PB_MessageRequester_Ok)
EndSelect
EndSelect
Until Event = #PB_EventCloseWindow
Ende:
End
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Selbst wenn der Code richtig wäre, würde er unter WinNT nicht funktionieren, da mit der "LogOffControl" Procedur keine Rechte erwirkt werden, so das lediglich ein Abmelden möglich ist.
Das go niemals wieder abgefragt wird, ist natürlich auch klar
Das go niemals wieder abgefragt wird, ist natürlich auch klar

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Guck doch mal das zweite Posting, da ist doch noch ein Link
, bzw. wenn Du die Boardsuche benutzt, findeste diese Funktion noch ein paarmal. Deshalb Poste ich sie nicht nochmal!

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
