begin process at 2010 02 10 11:33:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Lancer deux shellexecute


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancer deux shellexecute

vendredi 3 octobre 2008 à 14:40:20 | Lancer deux shellexecute

jmonnier

Bonjour,

Je voudrais lancer ces deux processus:
ShellExecute(GetActiveWindow,nil,PChar(chemin),PChar('-c -sd -user "'+sUser+'" -pwd "'+sMDP+'" "'+sConnexion+'"'),nil,sW_SHOWMINIMIZED);
   
ShellExecute(GetActiveWindow,nil,PChar(chemin2),PChar('-c: -h: -m:+sIP -u:+sUser -p:+sMDP -a:2'),nil,sW_SHOWNormal);

Mais pour le moment ils se lancent en même temps alors que ce qu'il me faudrait c'est que le second se lance une fois le premier aboutit.

Pouvez-vous m'aider ?
 

Jocelyn
vendredi 3 octobre 2008 à 15:52:54 | Re : Lancer deux shellexecute

JulioDelphi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Sais tu combien de temps le 1er shell mets à s'executer/se fermer ?
si c'est fixe, tu peux faire un sleep(2000); par exmple (2000 = 2 secondes)

Si ce n'est pas fixe, est ce que ça ouvre, puis ferme une fenetre ?
Dans ce cas, tu peux "choper" la fenetre qui s'ouvre puis si elle se ferme (son handle est détruit) alors le 2eme se lance !
vendredi 3 octobre 2008 à 15:57:42 | Re : Lancer deux shellexecute

L_art_ment

Réponse acceptée !
Bonjour,
Si les deux ShellExecute executent des lignes de commandes, j'ai une procedure qui lance la ligne de commande et attend qu'elle se finisse.
Si les deux ShellExecute font autre chose qu'executer des lignes de commandes alors je suis à côté de la plaque et je n'ai pas de meilleure réponse à t'apporter


L'Armand joue, l'arme en joug... Mon site
vendredi 3 octobre 2008 à 22:08:35 | Re : Lancer deux shellexecute

Francky23012301

Membre Club
Réponse acceptée !
Salut, Essaye ca :

procedure TForm1.Button1Click(Sender: TObject);
begin
  If ShellExecute(GetActiveWindow,nil,PChar('notepad.exe'),Nil,nil,sW_SHOWMINIMIZED)>=32 Then
  ShellExecute(GetActiveWindow,nil,PChar('C:\Program Files\VideoLAN\VLC\vlc.exe'),Nil,nil,sW_SHOWMINIMIZED);
end;

Chez moi NotePad s'ouvre et ensuite c'est VLC. Le laps de temps n'est pas énorme par contre.
samedi 4 octobre 2008 à 08:27:04 | Re : Lancer deux shellexecute

PHIL63

Membre Club
Réponse acceptée !
Bonjour,
Cette fonction n'est pas de moi (j'aurais bien aimé ), que son auteur me pardonne de ne pas le cité (je ne sais plus qui c'est) mais elle fonctionne parfaitement en remplacement de ShellExecute quand on veux attendre la fin de l'exécution d'un programme.

Le paramètre "voir" permet d'afficher ou non le programme lancé (c'est pratique), les autres paramètres se passe d'explication .

Déclaration :
Function ExecuteWait(Programme, parametres :string;voir :Boolean):Boolean;

Implémentation :
// Fonction permettant de lancer un programme externe et d'attendre la fin de celui-ci avant de continuer
Function TForm1.ExecuteWait(Programme, parametres :string;voir :Boolean):Boolean;
var ShExecInfo : TShellExecuteInfo;
begin
 try
   FillChar(ShExecInfo, SizeOf(ShExecInfo), 0);
   with ShExecInfo do
      begin
         cbSize := SizeOf(ShExecInfo);
         fMask  := SEE_MASK_NOCLOSEPROCESS;
         lpFile := PChar(Programme);      { le nom du programme }
         lpParameters := PChar(Parametres); { Les paramètres }
         lpVerb := 'open';
         if voir = True then nShow := SW_SHOW else nShow := SW_HIDE;
     end;
   if ShellExecuteEx(@ShExecInfo) then
       begin       { on execute le programme }
           WaitForSingleObject(ShExecInfo.hProcess, INFINITE); { on attends un temps indefinie que l'appli s'arrete }
       end;
   result := True;
 except
   result := False;
 end;
end;


Philippe DROUET
lundi 6 octobre 2008 à 11:09:39 | Re : Lancer deux shellexecute

jmonnier

Salut,

Merci à vous tous. Je pense que je vais m'en sortir avec vos réponses.
Sympa à vous.
Jocelyn
lundi 6 octobre 2008 à 13:55:33 | Re : Lancer deux shellexecute

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

CreateProcess, c'est bien aussi. Exemple d'attente ici.

lundi 6 octobre 2008 à 21:48:42 | Re : Lancer deux shellexecute

L_art_ment

Tient, salut rt15 


L'Armand joue, l'arme en joug... Mon site


Cette discussion est classée dans : lancer, shellexecute, nil, pchar, getactivewindow


Répondre à ce message

Sujets en rapport avec ce message

ShellExecute probleme [ par g0belin ] voila je voulais faire un pti prog simpa pour envoyer des net send mais j'ai un probleme:si je fais ça, sa marche :-----------------------------ShellE Ouvrir une fenêtre avec ses dimensions [ par Pilou ] Comment peut on attribuer la taille et position d'une fenêtre qu'on ouvre avec shellexecute ?ShellExecute (handle,'Open', PChar('c:\windows\') ,PChar Fonction ki execute tout et n'importe koi et attend sagement la fin [ par Gysmo ] J'ai trouver cette excelentissime fonction sur le web:function LaunchNWaitEnd(sFile: string): boolean;var cExe: array [0..255] of Char; sExe, Fichie Vidéo Media Player [ par Rowan ] Bonjours à tous,Je possède DELPHI4.Comme puis-je faire pour lancer une vidéo avec le MediaPlayer de windows en mode pleine écran?L'API ShellExecute, n classe TService :Application Service et lancement d'executable [ par zorg724 ] Bonjour, j'ai créé un service window (programme qui tourne en tache de fond- icone 'service' dans le menu nouveau->application sous delphi : Classe TS Probleme de ShellExecute tordu ! [ par DeltaFX ] Hello World :)Petit problème avec le lancement d'une appli externe (mais un peu + tordu, quand meme )J'ai donc un bout de code sous Delphi7 qui me lan Comment lancer un fichier? [ par corpse ] Bonjour à tous, tout d'abord bravo pour le dynamisme de ce forum et les comptétences (!) de certains...Je débute en delphi et souhaite réaliser un pro ShellExecute [ par eric_delphi_man ] Voici mon programme( Application console) pour lancer automatiquement mon logiciel, et il ne marche pas je ne comprend pas merci de me donner la repon Envoyer informations à un autre programme [ par Also know as ] Bonjour, Voilà j'ai crée deux programme, un qui lance les vidéos et le second qui prend tout simplement le lecteur windows media. Je cherche à envoy mail, adresses de sites et explorer [ par barbichette ] bonjour,je cherche à ouvrir la fenêtre de mail, d'internet ou un repertoire sur le disque via mon application.je sais que :ShellExecute(0,nil,'mailto:


Nos sponsors


Sondage...

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 : 1,404 sec (3)

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