![]() |
OpenThread schlägt außerhalb von Delphi fehl
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
Ich lasse mir mit CreateToolhelp32Snapshot alle Prozesse und deren Threads auflisten. Was mir eben aufgefallen ist, ist, dass ich von einigen Threads/Prozessen von "System-Prozessen" kein Handle bekomme, wenn ich mein Programm NICHT aus Delphi heraus starte. Wenn ich es aus Delphi heraus starte komme ich eigentlich an fast alle Handles ran. Weiß jemand woran das liegen könnte? Hab mal 2 Screenshots angehangen. Threads von Prozessen mit dem grauen Fragezeichen davor kann ich nicht öffnen (OpenThread). Info: Ich versuche die Threads mit dem Recht THREAD_SUSPEND_RESUME zu öffnen. Gruß Neutral General |
AW: OpenThread schlägt außerhalb von Delphi fehl
Iste Delphi mit Adminrechten (Stichwort UAC) gestartet?
|
AW: OpenThread schlägt außerhalb von Delphi fehl
Hallo,
Ich benutze Vista und die UAC ist abgeschaltet (bitte nicht hauen :mrgreen:). Habe das Programm auch schonmal explizit (außerhalb von Delphi) als Admin gestartet. Das hat aber nichts geändert. |
AW: OpenThread schlägt außerhalb von Delphi fehl
Eventuell erbt dein Programm in der IDE die Debugging-Rechte des Debuggers?
Und nein, selbst ein Admin-Programm muß nicht alle möglichen Rechte besitzen. |
AW: OpenThread schlägt außerhalb von Delphi fehl
Zitat:
Kann ich mir diese Rechte denn noch nachträglich irgendwie besorgen? |
AW: OpenThread schlägt außerhalb von Delphi fehl
Versuchen kann man's ... nur müßte man wohl erstmal rausbekommen welche(s) Recht(e) deinem Programm fehlen. :?
Wäre ja zu praktisch, wenn es ein Programm gäbe, welches einem die akiven Rechte eines Programmes auflisten könnte. |
AW: OpenThread schlägt außerhalb von Delphi fehl
Prozess Explorer macht das (Process -> Properties -> Security)
Bernhard |
AW: OpenThread schlägt außerhalb von Delphi fehl
Hallo,
Es wäre auch ganz praktisch wenn ich wüsste wie (mit welcher API?) man sich generell Rechte verschaffen kann ;) Werde mir den Prozess Explorer aber schon mal runterladen :) Edit: Das einzige Recht was eine Anwendung in Delphi mehr hat ist das SeDebugPrivilege. |
AW: OpenThread schlägt außerhalb von Delphi fehl
Zitat:
|
AW: OpenThread schlägt außerhalb von Delphi fehl
Hallo,
Zitat:
Delphi-Quellcode:
Problem ist also damit gelöst :)
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; Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
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