Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Programm nur mit User-Rechten starten von Admin-Prozess

  Alt 3. Dez 2018, 21:24
Hallo Kodezwerg,

schon mal danke für die Mühe.

Nein, die Jedis verwende ich nicht.

Habe das mal versucht hier umzusetzen, aber WTSQueryUserToken liefert false zurück, so dass in der Folge CreateProcressAsUser nicht ausgeführt wird.
Delphi-Quellcode:
function WTSQueryUserToken(SessionId: ULONG; var phToken: THandle): BOOL; stdcall; external 'Wtsapi32.dll';

procedure TForm3.Button1Click(Sender: TObject);
const
  ProgramName = 'D:\DEV\DX10\FileIO\FileIO.exe';
var
  hToken: THandle;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  res: boolean;
  SessionID: Cardinal;
begin
  GetStartupInfo(StartupInfo);

  SessionID := WtsGetActiveConsoleSessionID;

  if WTSQueryUserToken(SessionID, hToken) then
  begin
    res := CreateProcessAsUser(hToken, ProgramName, nil, nil, nil, False, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInfo);
    if res then
      WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
  end;

end;

Geändert von Harry Stahl ( 3. Dez 2018 um 22:43 Uhr)
  Mit Zitat antworten Zitat