oder Grupenrichtlinienedtor benutzen
http://www.windowspage.de/frame.php?htt ... pedit.html
unter
---Windows-Einstellungen
---------Skripts (Start/Herunterfahren)
Bei Windows-Start und Windows-Shutdown Befehle ausführen???
Zuletzt geändert von bobobo am 22.09.2006 14:17, insgesamt 1-mal geändert.
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- 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
Einfach eine Verknüpfung in den Autostart-Ordner, dann startet das
Programm mit Windows. Im Callback #WM_QUERYENDSESSION abfangen,
dann kann man noch schnell was machen, bevor Windows zuende ist (aber
sehr schnell)
Sollte IMHO der einfachste und sauberste Weg sein, wenns denn ausreicht
Programm mit Windows. Im Callback #WM_QUERYENDSESSION abfangen,
dann kann man noch schnell was machen, bevor Windows zuende ist (aber
sehr schnell)
Sollte IMHO der einfachste und sauberste Weg sein, wenns denn ausreicht

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.

-
- Beiträge: 630
- Registriert: 05.05.2005 19:06
- 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
Ist doch simple
// Nachtrag:
Hab den Code mal ein bißchen erweitert. Ob man jetzt auf den Button
klickt um Windows zu beenden, oder Start/Computer ausschalten, ist
egal, die MessageBox sollte erscheinen.
PS: es empfiehlt sich den Source zu speichern, bevor man beendet

Code: Alles auswählen
Procedure CallBack(hWnd.l, Msg.l, wParam.l, lParam.l)
If Msg = #WM_QUERYENDSESSION
; Mach was und beeil Dich ;)
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, #PB_Ignore, 0, 200, 200, "")
SetWindowCallback(@CallBack())
; weiterer Code
EndIf
Hab den Code mal ein bißchen erweitert. Ob man jetzt auf den Button
klickt um Windows zu beenden, oder Start/Computer ausschalten, ist
egal, die MessageBox sollte erscheinen.
PS: es empfiehlt sich den Source zu speichern, bevor man beendet

Code: Alles auswählen
Procedure EnableShutDown()
Privileges.TOKEN_PRIVILEGES
OpenProcessToken_(GetCurrentProcess_(), 40, @hToken)
Privileges\PrivilegeCount = 1
Privileges\Privileges[0]\Attributes = #SE_PRIVILEGE_ENABLED
LookupPrivilegeValue_(0, "SeShutdownPrivilege", @Privileges\Privileges[0]\Luid)
AdjustTokenPrivileges_(hToken, 0, @Privileges, 0, 0, 0)
CloseHandle_(hToken)
EndProcedure
Procedure Shutdown(Flags.l)
EnableShutDown()
ExitWindowsEx_(Flags, 0)
EndProcedure
Procedure Callback(hWnd.l, Msg.l, wParam.l, lParam.l)
Select Msg
Case #WM_QUERYENDSESSION
MessageRequester("", "Achtung, Windows wird beendet")
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, #PB_Ignore, 0, 130, 50, "")
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 100, 25, "Shutdown")
EndIf
EndIf
SetWindowCallback(@Callback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0
Shutdown(#EWX_SHUTDOWN | #EWX_FORCE)
EndIf
EndSelect
ForEver
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.
