Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: OpenThread schlägt außerhalb von Delphi fehl

  Alt 5. Apr 2011, 19:58
Hallo,

Zitat von MSDN:
Indem Sie die Berechtigung SeDebugPrivilege für den laufenden Prozess festlegen, können Sie das Prozesshandle für jede aktive Anwendung beziehen
Folgender Code funktioniert bei mir:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hToken: THandle;
    New: PTokenPrivileges;
    Len, OutLen: Cardinal;
    DebugLUID: Int64;
begin
  if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,hToken) then
  begin
    try
      if LookupPrivilegeValue(nil,'SeDebugPrivilege',DebugLUID) then
      begin
        Len := SizeOf(TTokenPrivileges)+SizeOf(TLUIDAndAttributes);
        GetMem(New,Len);
        try
          New^.PrivilegeCount := 1;
          New^.Privileges[0].Luid := DebugLUID;
          New^.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

          if not AdjustTokenPrivileges(hToken,false,New^,0,nil,OutLen) then
            RaiseLastOSError;
        finally
          FreeMem(New);
        end;
      end;
    finally
      CloseHandle(hToken);
    end;
  end;
end;
Problem ist also damit gelöst

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat