Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi shutdown! (https://www.delphipraxis.net/44750-shutdown.html)

Jens Schumann 27. Apr 2005 17:34

Re: shutdown!
 
Zitat:

Zitat von MathiasSimmack
Ich glaube nicht, denn das wäre ja eine subjektive Beitragsbewertung, wg. der Luckie die DP verlassen müsste. :mrgreen:

Ich möchte natürlich auf gar keinen Fall das Luckie di DP verlassen muss. Schau doch mal dort

MathiasSimmack 27. Apr 2005 17:38

Re: shutdown!
 
Ich habe das schon mitbekommen, Jens. ;) Das war nur ein Insider-Joke aus dem Niveauthread von mir. Aber jetzt höre ich, das wird OT. Außerdem zünden Gags nicht mehr, wenn man sie erklären muss. :lol:

Luckie 27. Apr 2005 19:54

Re: shutdown!
 
Zitat:

Zitat von Jens Schumann
Hallo Luckie,
wie sieht es aus? Bekommen wie den denkbar besten Code noch zu sehen? :stupid:

gemach, gemach.

Was mich an dem Code von Gardian Knot stört, ist das jegliche Rückgabewerte auf das sträflichste missachtet wurden. Da ist selbst der Code, der auf der ersten Seite gepostet wurde noch besser.

Delphi-Quellcode:
function EnablePrivilege(const Privilege: string; fEnable: Boolean; out
  PreviousState: Boolean): DWORD;
var
  Token       : THandle;
  NewState    : TTokenPrivileges;
  Luid        : TLargeInteger;
  PrevState   : TTokenPrivileges;
  Return      : DWORD;
begin
  PreviousState := True;
  if (GetVersion() > $80000000) then
    // Win9x
    Result := ERROR_SUCCESS
  else
  begin
    // WinNT
    if not OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then
      Result := GetLastError()
    else
    try
      if not LookupPrivilegeValue(nil, PChar(Privilege), Luid) then
        Result := GetLastError()
      else
      begin
        NewState.PrivilegeCount := 1;
        NewState.Privileges[0].Luid := Luid;
        if fEnable then
          NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
        else
          NewState.Privileges[0].Attributes := 0;
        if not AdjustTokenPrivileges(Token, False, NewState,
          SizeOf(TTokenPrivileges), PrevState, Return) then
          Result := GetLastError()
        else
        begin
          Result := ERROR_SUCCESS;
          PreviousState :=
            (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0);
        end;
      end;
    finally
      CloseHandle(Token);
    end;
  end;
end;
Das ist meine Funktion, um das Privileg zu aktivieren.

Jens Schumann 28. Apr 2005 17:47

Re: shutdown!
 
Danke

Garfield 7. Mai 2005 22:01

Re: shutdown!
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von BornToBeBreit
Hey Garfield
der code funktionirt perfekt, genau wie ich ihn wollt. danke euch allen.

Und damit hast du den denkbar schechtesten Code genommen, den du dafür bekommen konntest. Wenn du dir den Code etwas aufmerksamer angekuckt hättest, dann hättest du gemrkt, dass selber Code schon in ein paar Variationen hier gepostet wurde. :roll:

Für mich war es nach längerem Suchen und Ausprobieren mehrerer Codes der erste, der wirklich das tat, was er sollte. Deshalb habe ich ihn empfohlen. Deine function werde ich ausprobieren. Vielleicht habe ich damit auch Erfolg.

PS: Meine späte Antwort liegt daran, dass ich auf Montage war.

MrKnogge 6. Aug 2005 15:23

Re: shutdown!
 
@Luckie

Kannst du mir die Parameter erklären, die ich übergeben muss, bzw zurück erhalte ? *ganzliebguck*

gruss

Nils_13 6. Aug 2005 15:29

Re: shutdown!
 
Bei mir läuft Kidix's Code aber :gruebel: . Ich hab xp_prof und verwende ihn selbst immer... .

Luckie 6. Aug 2005 15:31

Re: shutdown!
 
Der erste Paramter gibt das Privilieg an, um welches es geht, der zweite ob es aktiviert oder deaktiviert werden soll und der dritte gibt zurück, ob das Privileg vorher aktiviert oder deaktiviert war.

MrKnogge 6. Aug 2005 15:35

Re: shutdown!
 
und result gibt zurück ob Fhler aufgetreten sind, richtig ?

gruss

Luckie 6. Aug 2005 15:36

Re: shutdown!
 
Richtig. Den kannst du mit GetLastError auswerten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr.
Seite 3 von 3     123   

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