Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

rausfinden welche Anwendung den Shutdown von Windows verhindert

  Alt 21. Jun 2012, 17:38
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! <<
  Mit Zitat antworten Zitat