Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

Creare un processo con l'utenza SYSTEM


In questo articolo viene esaminato un importante utilizzo della procedura RemoteCreateProcess descritta nell'articolo Remote CreateProcess il cui obiettivo č creare un processo come figlio di un processo remoto. Specificando come processo remoto ad esempio winlogon.exe (processo che viene eseguito con l'utenza SYSTEM) il processo figlio ottenuto verrā automaticamente eseguito con l'utenza SYSTEM.

1. Implementazione

function RunAsSystem(ProgName: PAnsiChar; DesktopName: PAnsiChar; var outValue: Cardinal; var codError: Cardinal): Boolean; begin // Result := False; if not RemoteCreateProcess(PidProcesso('winlogon.exe'), ProgName, DesktopName, outValue, codError, True) then Exit; Result := True; end;

e di seguito un breve esempio di utilizzo

procedure TfrmMain.btnCreateClick(Sender: TObject); var PIDProcesso, error: Cardinal; begin if not RunAsSystem(PAnsiChar(edtNomeEXE.Text), 'winsta0\default', PIDProcesso, error) then begin mmoLog.Lines.Add('errore nella procedura'); end else begin if error <> 0 then mmoLog.Lines.Add('Errore nella creazione del processo figlio; Cod errore: ' + IntToStr(error)) else mmoLog.Lines.Add('Creato proceso figlio con il seguente PID: ' + IntToStr(PIDProcesso)); end; end;

ProcessAsSystem

 

 

 

 
 
Your Ad Here