Hallo,
ist es möglich und falls ja wie, rauszufinden welche Anwendung den Shutdown von Windows (XP) verhindert?
Ich habe das Problem dass auf meinem Firmen-Laptop bei einem Benutzer meistens der Shutdown nicht funktioniert. Er wird einfach nicht ausgeführt.
(also über Start --> Herunterfahren (oder Abmelden oder Neustarten))
Nutze ich diesen Code um runterzufahren funktioniert es problemlos:
Delphi-Quellcode:
function ExitWindows(RebootParam: Longword): Boolean;
//mögliche RebootParam:
//EWX_POWEROFF or EWX_FORCE = shutdown
//EWX_REBOOT or EWX_FORCE = reboot
//EWX_LOGOFF or EWX_FORCE = logoff
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
AdjustTokenPrivileges(TTokenHd, false, TTokenPvg, cbtpPrevious,
rTTokenPvg, pcbtpPreviousRequired);
end;
end;
Result := ExitWindowsEx(RebootParam, 0);
end;
Ich würde mir gerne eine Anwendung schreiben die rausfindet welche Anwendung den Shutdown verhindert.
Ich bin mir bewusst, dass dann diese Anwendung ebenfalls den Shutdown verhindert, aber dies ist ja gewollt.
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<