Da ich jetzt ziemlich viel Zeit damit verbracht habe, möchte ich nicht das Projekt über Board werfen.
Ich habe jetzt von der Funktion
CreateProcessWithLogonW erfahren mit der ich einen Prozess unter einem anderem Benutzer starten kann. Damit könnte ich mit den AdminRechten den Prozess zur Registrierung der Serveranwendung auf dem Client starten. Ich bekomme die Funktion aber nicht zum laufen
dazu verwende ich den folgenden Quellcode
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
si: STARTUPINFOW;
pif: PROCESS_INFORMATION;
res: Bool;
s: string;
begin
si.cb := SizeOf(startupinfow);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_SHOWDEFAULT;
si.lpReserved := nil;
si.lpDesktop := nil;
si.lpTitle := 'Konsole';
res := CreateProcessWithLogonW(username, domain, userpass, LOGON_WITH_PROFILE,
'e:\projekte\runas\runas.exe', nil
, CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pif);
if booltostr(res) = '0' then
begin
//this code can be 'translated' with 'net helpmsg ' on command-prompt
str(GetLastError, s);
ShowMessage('CreateProcessWithLogonResult: ' + booltostr(res) + #10 +
'GetLastError: ' + s);
end;
end;
Ich bekomme ständig als Antwort den Fehler 87, was übersetzt "falscher Parameter" bedeutet ..
Was mache ich falsch ?