Nochmals vielen Dank für den Upload!
Ich Habe mir jetzt was aus der Demo zusammengebastelt, und habe nun folgendes Problem:
Wenn ich mich mit meinem regulärem Benutzer aus der Domaine anmelde öffnet er mir den Explorer ohne Probleme, wenn ich aber versuche diesen als Domainadmin aufzurufen passiert nichts und ich schaff es nicht den Fehler zu lokalisieren.
Ich hoffe ihr könnt mir weiter helfen
hier mein Code
Delphi-Quellcode:
function CreateProcessWithLogonW(lpUsername, lpDomain, lpPassword: LPWSTR; dwLogonFlags: dword; lpApplicationName,
lpCommandLine: LPWSTR; dwCreationFlags: dword; lpEnvironment: pointer; lpCurrentDirectory: LPWSTR; lpStartupInfo:
PStartUpInfoW; lpProcessInfo: PProcessInformation): boolean; stdcall; external 'advapi32.dll';
implementation
{$R *.dfm}
function CreateProcessAsLogon(const User, PW, Application, CmdLine: WideString): DWORD;
var
si : TStartupInfoW;
pif : TProcessInformation;
s : WideString;
begin
ZeroMemory(@si, sizeof(si));
si.cb := sizeof(si);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := 1;
if CmdLine = '' then
s := Application
else
s := Application + ' "' + CmdLine + '"';
SetLastError(0);
CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW), 0, nil, PWideChar(s), CREATE_DEFAULT_ERROR_MODE, nil,
nil, @si, @pif);
Result := GetLastError;
end;
procedure TForm5.ComboBox1Select(Sender: TObject);
var
User : WideString;
PW : WideString;
err: DWORD;
begin
User := WideString(form1.Edit1.Text);
PW := WideString(form1.Edit2.Text);
err := CreateProcessAsLogon(User, PW,stringgrid1.cells[0,combobox1.ItemIndex] , '');
if err <> 0 then
ShowMessage(SysErrorMessage(err));
end;
Schonmal vieln Dank
Gruß
Manu