Einzelnen Beitrag anzeigen

tomkupitz

Registriert seit: 26. Jan 2011
339 Beiträge
 
Delphi 12 Athens
 
#6

AW: Admin Exe unter Lokalem User starten ohne Passwortabfrage

  Alt 19. Jun 2020, 08:04
Ich habe folgendes versucht:

Zwei VCL Projekte (Project1 und Project2 im gleichen Ordner - ohne Win32 Ordner). Project2 läuft als Admin. Project1 ruft Project2 mit unterem (im Netz gefunden) Code auf. Geht nicht.

Code:
const
  LOGON_WITH_PROFILE = $00000001;

function CreateProcessWithLogonW(
  lpUsername,
  lpDomain,
  lpPassword:PWideChar;
  dwLogonFlags:dword;
  lpApplicationName: PWideChar;
  lpCommandLine: PWideChar;
  dwCreationFlags: DWORD;
  lpEnvironment: Pointer;
  lpCurrentDirectory: PWideChar;
  lpStartupInfo: PStartupInfoW;
  lpProcessInformation: PProcessInformation
): BOOL; stdcall; external 'advapi32.dll';

function CreateProcessAsLogon(const User, PW, Application, CmdLine: WideString):
  Boolean;
var
  si : TStartupInfoW;
  pif : TProcessInformation;
begin
  si.cb := SizeOf(TStartupInfoW);
  si.dwFlags := STARTF_USESHOWWINDOW;
  si.wShowWindow := 1;
  si.lpReserved := nil;
  si.lpDesktop := nil;
  si.lpTitle := nil;
  Result := CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW),
    LOGON_WITH_PROFILE, nil, PWideChar(Application +' '+CmdLine),
    CREATE_DEFAULT_ERROR_MODE, nil, nil, @si, @pif);
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  CreateProcessAsLogon('Username', 'Password', 'Project2.exe', '');
end;
Was kann ich noch tun? Das alles unter Win10.
  Mit Zitat antworten Zitat