Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

CreateProcessAsLogon + Systemtools

  Alt 21. Mär 2006, 15:13
Hi,

ich habe 2 kleine Frage. Irgendwie schaffe ich es nicht ganz.

Ich rufe mit anderen UserRechten das Control Panel auf bzw. die Services auf. Die Umsetzung mit den UserRechten ist OK bloß der Syntax für den Aufruf stimmt nicht ganz.

Wie realisiere ich:

1. Control Panel mit Software Eigenschaften:
Delphi-Quellcode:
procedure Tfrm_main.btn_softwareClick(Sender: TObject);
var
 app, param : string;
begin
 app := PJSysInfo1.SystemFolder+'\control.exe';
 param := 'appwiz.cpl';
 If not CreateProcessAsLogon(frm_login.edt_username.Text,frm_login.edt_password.Text,frm_login.cb_domain.Text, app, param) then
   RaiseLastOSError;
end;
geht nur bis in die Control Panel Ansicht und nicht weiter

2. Aufruf *.MSC Dateien mit CreateProcessAsLogon
Delphi-Quellcode:
procedure Tfrm_main.btn_computermmClick(Sender: TObject);
var
 app, param : string;
begin
 app := PJSysInfo1.SystemFolder+'\Compmgmt.msc';
 param := '';
 If not CreateProcessAsLogon(frm_login.edt_username.Text,frm_login.edt_password.Text,frm_login.cb_domain.Text, app, param) then
   RaiseLastOSError;
end;
Bring SystemFehlermeldung: System ERROR Code:193

CreateProcessAsLogon Function:
Delphi-Quellcode:
function CreateProcessAsLogon(const User, PW, Domain, Application, CmdLine: WideString):
  Boolean;
var
  si : TStartupInfoW;
  pif : TProcessInformation;
begin
  ZeroMemory(@si, sizeof(TStartupInfo));
  si.cb := SizeOf(TStartupInfoW);
  si.dwFlags := STARTF_USESHOWWINDOW;
  si.wShowWindow := 1;
  Result := CreateProcessWithLogonW(PWideChar(User), PWideChar(Domain), PWideChar(PW),
    LOGON_WITH_PROFILE, PWideChar(Application), PWideChar(CmdLine),
    CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pif);
end;
Wo liegt denn der Fehler? ich hoffe mir kann einer helfen. Danke
  Mit Zitat antworten Zitat