![]() |
rechner komplett herunterfahren
Hallo!
kann mir hier jemand sagen wie ich meinen rechner(windows xp) mit delphi(delphi 6 enterprise) herunterfahren kann? ich hab es schon mit vielen befehlen ausprobiert, aber immer hat sich der rechner nur abgemeldet. |
Re: rechner komplett herunterfahren
Kuck mal in die Code-Lib. Link ganz oben unter dem Banner.
Btw. Zitat:
|
Re: rechner komplett herunterfahren
Unter XP gibt es doch den "Shutdown" befehl - ich kann dir aber nichts genaueres sagen da ich Win2k benutze. Ich hab da glaube auch irgendwo noch ne unit rumfliegen mit der man das machen kann, man muss ja beachten ob es ein NT oder 9x system ist. Also wenn das prog noch auf anderen rechnern laufen soll dann musst du das vorher auch prüfen.
Mfg |
Re: rechner komplett herunterfahren
Herzlich willkommen in der DP!
![]() [Edit]Zu langsam, kommt davon, wenn man in der CodeLib erst mal nach dem falschen Begriff sucht :oops: [/Edit] |
Re: rechner komplett herunterfahren
@Luckie: Du weißt doch ganz genau, wie brändy das meint. :mrgreen:
@WtF: Es gibt einen allgemein gültigen Befehl, mit dem man das OS herunterfahren kann (oder auch neu starten, usw.). Irgendwelche Befehle über die Kommandozeile aufzurufen entfällt damit also. Die Code-Lib enthält das passende Beispiel, das auch auf besondere Gegebenheiten (NT-Systeme) Rücksicht nimmt. Was man machen könnte, wenn man den Standarddialog von Windows sehen will, wäre ein WM_CLOSE an das Fenster "Shell_TrayWnd" zu schicken. Das funktioniert von 95 bis XP, fährt den Rechner aber nicht herunter sondern zeigt (wie gesagt) nur den Dialog von "Start -> Beenden" an. |
Re: rechner komplett herunterfahren
hi
Delphi-Quellcode:
var
TTokenHd: THandle; TTokenPvg: TTokenPrivileges; cbtpPrevious: DWORD; rTTokenPvg: TTokenPrivileges; pcbtpPreviousRequired: DWORD; tpResult: Boolean; const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin tpResult := OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TTokenHd); if tpResult then begin tpResult := LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, TTokenPvg.Privileges[0].Luid); TTokenPvg.PrivilegeCount := 1; TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; cbtpPrevious := SizeOf(rTTokenPvg); pcbtpPreviousRequired := 0; if tpResult then Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg, cbtpPrevious, rTTokenPvg, pcbtpPreviousRequired); end; end; Result := ExitWindowsEx(RebootParam, 0); end;
Delphi-Quellcode:
MyExitWindows(EWX_POWEROFF or EWX_FORCE);
also bei mir klappts wunderbar ;) |
Re: rechner komplett herunterfahren
Das ist sehr schön, aber warum postest du den Code, wo er doch in der Code-Lib steht und durch einen simplen Klick auf Matzes Link gefunden werden kann? Ich hab´s probiert, es sind nur 2 (in Worten: zwei) Suchergebnisse, die ich da sehe.
|
Re: rechner komplett herunterfahren
weiss nicht wies geht
und so hat ers schneller zu hand ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz