Einzelnen Beitrag anzeigen

Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#5

Re: problem mit createprocesswithlogonW

  Alt 20. Okt 2008, 16:45
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
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat