begin process at 2010 02 10 10:37:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > LANCER UNE APPLICATION ET ATTENDRE SA FERMETURE

LANCER UNE APPLICATION ET ATTENDRE SA FERMETURE


 Information sur la source

Note :
8,67 / 10 - par 3 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Niveau :Initié Date de création :12/05/2002 Date de mise à jour :12/05/2002 16:46:04 Vu / téléchargé :9 558 / 540

Auteur : Gysmo

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cette fonction vous permet de lancer un fichier via son executable associer ou un executable directement puis d'attendre la fermerture de l'executable lancé.  

Source

  • uses ShellApi;
  • function LaunchAndWait(sFile: String; wShowWin: Word): Boolean;
  • var
  • cExe: array [0..255] of Char;
  • sExe: string;
  • pcFile: PChar;
  • StartInfo: TStartupInfo;
  • ProcessInfo: TProcessInformation;
  • begin
  • Result:=True;
  • FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
  • sExe:= string(cExe);
  • if UpperCase(ExtractFileName(sExe))<>UpperCase(ExtractFileName(sFile))
  • then pcFile:=PChar(' "'+sFile+'"')
  • else pcFile:=nil;
  • ZeroMemory(@StartInfo, SizeOf(StartInfo));
  • with StartInfo do begin
  • cb:=SizeOf(StartInfo);
  • dwFlags:=STARTF_USESHOWWINDOW;
  • wShowWindow:=wShowWin;
  • end;
  • if CreateProcess(PChar(sExe), pcFile, nil, nil, True, 0, nil, nil, StartInfo, ProcessInfo)
  • then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
  • else Result:=False;
  • end;
uses ShellApi;

function LaunchAndWait(sFile: String; wShowWin: Word): Boolean;
var
  cExe: array [0..255] of Char;
  sExe: string;
  pcFile: PChar;
  StartInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  Result:=True;
  FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
  sExe:= string(cExe);
  if UpperCase(ExtractFileName(sExe))<>UpperCase(ExtractFileName(sFile))
  then pcFile:=PChar(' "'+sFile+'"')
  else pcFile:=nil;
  ZeroMemory(@StartInfo, SizeOf(StartInfo));
  with StartInfo do begin
    cb:=SizeOf(StartInfo);
    dwFlags:=STARTF_USESHOWWINDOW;
    wShowWindow:=wShowWin;
  end;
  if CreateProcess(PChar(sExe), pcFile, nil, nil, True, 0, nil, nil, StartInfo, ProcessInfo)
  then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
  else Result:=False;
end;  

 Conclusion

Ce source n'est pas de moi. J'ai juste rajouter wShowWin permettant de choisir la taille de la fenetre a ouvrir, et encor on ma aider!
M'enfin c'est le resultat qui compte apres tout!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COMPOSANT STYLE WINDOWS XP
Source avec Zip VERSION DE WINDOWS
Source avec Zip TROUVER L'EXECUTABLE ASSOCIÉ A UN FICHIER
Source avec Zip AJOUTER UN COMPOSANT DANS UN AUTRE
RACCOURCIS CLAVIER POUR DELPHI

 Sources de la même categorie

Source avec Zip GÉNÉRATEUR DE JET DE DÉS par koriteki
Source avec Zip Source avec une capture LES FIBERS : DES THREADS NON PRÉEMPTÉS PAR LE SYSTÈME par Caribensila
Source avec Zip Source avec une capture UAC (USER ACCOUNT CONTROL) - EXÉCUTER UNE APPLICATION EN TAN... par ni69
BLOQUER LE TASKMGR SANS CLÉ DE REGISTRE par craftsystem
Source avec Zip UTILISER LES MESSAGES WINDOWS POUR GERER LE NOMBRE D'INSTANC... par lotfi213_b19

Commentaires et avis

Commentaire de Bestiol le 12/05/2002 22:25:19

Ce code est sympa et économique !! J'avais voulu faire le même genre de fonction : j'avais pensé à utiliser FindWindow dans un Timer, en utilisant des variables booleennes pour savoir si le programme a été lancé ou pas...
Je l'ai pas fait, donc je sais pas si c'est réalisable (??)

Commentaire de Synthox le 23/03/2003 14:17:13

C'est cool merci pour la fonction, ca marche mais il reste un petit probleme, comment faire passer un parametre a l'application ?

Commentaire de jmp77 le 16/03/2005 13:10:50

Tres bonne source.

Merci.

Juste une remarque c'est bien de dire que la source n'est pas de toi mais ca serait sympa de donner le nom ou le lien de l'auteur.

Note :  9/10

Bonne prog,
JMP77.

Commentaire de japee le 26/05/2005 02:54:43 administrateur CS

Très, très utile !

Commentaire de djiga4me le 22/07/2009 16:06:17

hi,
pourrait-on expliquer cette function ,??!!

Commentaire de djmmix le 16/11/2009 21:18:26

salut ,

j'ai fait une petite modif a ta fonction pour les paramètre car j'avais essayer de lui transmettre mais j'avais un soucis :s

le code que je vais te poster le résoud :)

function LaunchAndWait(sFile,sParam: String; wShowWin: Word): Boolean;
var
  cExe: array [0..255] of Char;
  StartInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  Result:=True;
  FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
  ZeroMemory(@StartInfo, SizeOf(StartInfo));
  with StartInfo do begin
    cb:=SizeOf(StartInfo);
    dwFlags:=STARTF_USESHOWWINDOW;
    wShowWindow:=wShowWin;
  end;
  if CreateProcess(cExe, pchar(sparam), nil, nil, True, 0, nil, nil, StartInfo, ProcessInfo)
  then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
  else Result:=False;
end;

un peut de code en moin mais les paramètres passe nickel la :p

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales