NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
-55%
Le deal à ne pas rater :
BODUM Bistro Set : Théière filtre 1 L + 2 gobelets double paroi en ...
17.99 € 39.90 €
Voir le deal

 

 Comment lancer un programme sous un autre contexte de securi

Aller en bas 
AuteurMessage
Admin
Fondateur
Fondateur
Admin


Nombre de messages : 197
Age : 40
Localisation : Tlemcen ( Algérie )
Date d'inscription : 04/12/2006

Comment lancer un programme sous un autre contexte de securi Empty
MessageSujet: Comment lancer un programme sous un autre contexte de securi   Comment lancer un programme sous un autre contexte de securi Icon_minitimeVen 12 Jan - 6:25

Il est très fréquent d'avoir à lancer une application en tant qu'un autre utilisateur. Généralement , on utilise (pour les versions de Windows supérieures à Windows ME) le menu contextuel permettant "d'exécuter en tant que...".

Nous allons ici présenter une solution qui permet de faire de même mais cette fois directement à partir de Delphi.

Avant tout, il faut définir les constantes suivantes :
Code:

const
  LOGON_WITH_PROFILE = 1;
  LOGON_NETCREDENTIALS_ONLY = 2;





Code:




procedure runas(sUser, sDomain, sPassword : WideString);
var
  wUsername, wDomain, wPassword, wApplicationName: WideString;
  pwUsername, pwDomain, pwPassword, pwApplicationName: PWideChar;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  wUsername := sUser ;
  wDomain := sDomain;
  wPassword := Spassword;
  wApplicationName := sExecutable ;
  pwUsername := Addr(wUsername[1]);
  pwDomain := Addr(wDomain[1]);
  pwPassword := Addr(wPassword[1]);
  pwApplicationName := Addr(wApplicationName[1]);

  FillChar(StartupInfo, SizeOf(StartupInfo), 0);
  StartupInfo.cb := SizeOf(StartupInfo);
  try
  if not CreateProcessWithLogon(pwUsername,pwDomain,pwPassword,LOGON_NETCREDENTIALS_ONLY,
                                nil,pwApplicationName,CREATE_DEFAULT_ERROR_MODE,
                                nil,nil,StartupInfo,ProcessInfo) then
    RaiseLastOSError; //En cas d'erreur, donne des détails sur l'erreur
end;


La fonction CreateProcessWithLogon est définie dans advapi32.dll. Il faudra donc, pour l'utiliser, la déclarer par :
Code:

function CreateProcessWithLogon; external 'advapi32.dll' name 'CreateProcessWithLogonW';
Revenir en haut Aller en bas
https://neo-team.forumactif.com
 
Comment lancer un programme sous un autre contexte de securi
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment appeler la boite de dialogue enregistrer sous ?
» Comment interdire la mise en veille d'une machine sous Windo
» Comment imposer une pause au programme ?
» Comment utiliser un programme externe via l'EDI ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Les RADs :: Borland Delphi 4,5,6,7-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser