Avatar billede spectual Nybegynder
18. april 2002 - 07:16 Der er 8 kommentarer og
1 løsning

Lukke windows ned (XP)

Dav.

Sidder og prøver at lave en rutine, der kan lukke en windows XP ned.

Gøres normalt med api'en ExitWindowsEx (ECX_POWEROFF, 0) - men da det er XP, skal man have rettigheder til at gøre det.

Jeg har fundet følgende kode på nettet:

function DelphiExitsWindows( Flags : Word):Boolean;
var
  iVersionInfo: TOSVersionInfo;
  iToken    : THandle;
  iPriveleg : TTokenPrivileges;
  iaresult  : cardinal;
begin

  Result:=FALSE;
  FillChar (iPriveleg, SizeOf (iPriveleg), #0);
  iVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  GetVersionEx(iVersionInfo);
  if iVersionInfo.dwPlatformId <> VER_PLATFORM_WIN32_NT then
    Result:=ExitWindowsEx (Flags, 0)
  else
    if OpenProcessToken (GetCurrentProcess,
        TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, iToken) then
      if LookupPrivilegeValue (NIL,'SeShutdownPrivilege',
            iPriveleg.Privileges[0].Luid) then
      begin
        iPriveleg.PrivilegeCount := 1;
        iPriveleg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        if AdjustTokenPrivileges (iToken,False,iPriveleg,
                    Sizeof(iPriveleg),iPriveleg,iaresult) then
          Result:=ExitWindowsEx (Flags, 0);
      end;
end;

Men koden virker ikke! ExitWindowsEx giver mig en fejl 1314, som er, at jeg ikke har rettigheder til at lukke windows ned, og det fatter jeg jo ikke en hvede af!

Er der een der gør?
Avatar billede borrisholt Novice
18. april 2002 - 07:17 #1
http://borrisholt.com kan du download et eksemple på hvordan man gør.

Jens B
Avatar billede spectual Nybegynder
18. april 2002 - 07:17 #2
(da jeg prøvede koden er var jeg logget ind med en administrator konto)
Avatar billede spectual Nybegynder
18. april 2002 - 07:18 #3
det gik stærkt. din side ser meget underlig ud. totalt skrympet sammen.
Avatar billede borrisholt Novice
18. april 2002 - 07:19 #4
Avatar billede spectual Nybegynder
18. april 2002 - 07:20 #5
meget bedre
Avatar billede spectual Nybegynder
18. april 2002 - 07:21 #6
prøver det lige af...
Avatar billede spectual Nybegynder
18. april 2002 - 07:25 #7
hm. virker ikke.

det er sq nok ikke programmet, der er noget i vejen med.

Hvordan kan en administrator ikke have rettigheder til at lukke ned?
Avatar billede spectual Nybegynder
18. april 2002 - 07:26 #8
jeg kan godt "lukke alle programmer og logge på som en anden bruger"
Avatar billede spectual Nybegynder
18. april 2002 - 08:40 #9
problemet er løst.

Endte med at lave en DLL i visual c, som kunne klare problemet og derefter importere den ind i programmet i delphi.

Så kan man så undre sig sådan ca. resten af sit liv hvorfor det ikke virkede direkte i delphi.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

Microsoft AI Solution Architect

Forsvarsministeriets Materiel- og Indkøbsstyrelse

SAP-medarbejder til Roller & Autorisationer i Forsvarets Cyberdivision

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kryptokustode til opbygning af Forsvarets nye IT-platform

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen