Retour au prg aprés un ShellExecute [Résolu]

cs_MicFor 21 Messages postés jeudi 22 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 28 nov. 2006 à 11:34 - Dernière réponse : Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention
- 30 nov. 2006 à 13:21
Bonjour,
Dans mon application, je dois exécuter un utilitaire externe qui me retransmet  l'info traitée, sous la forme d'une chaine de caractère  par l'intermédiaire du clipboard. J'utilise donc un shellExecute(handle, 'open', prg, nil, nil, Sw_show) suivi d'un memo.pastefromclipboard et cela fonctionne sans probléme, manuellement avec un simple bouton.
Petit problème, aprés le shellexecute, mon application récupère les données stockée dans le clipboard aprés la fermeture de l'utilitaire mais je n'ai pas trouvé le moyen de savoir à quel moment l'utilitaire à terminer son travail et quand windows rends la main à mon programme. Je peux éventuellement faire un test sur le contenu du presse papier mais cela devient assez lourd.
Comment repérer, sous delphi,  le  moment précis  où  windows rends  la main à mon application après  un  shelExecute? J'ai trouvé peu d'info sur le ShellExecute, a quoi sert par exemple le paramètre 'handle' ?  
Avec mes remerciements.
Micfor
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 28 nov. 2006 à 18:57
3
Merci
Que ce soit une commande Dos où une APPLICATION c'est la même chose ... ça fonctionne

as-tu au moins essayé le code que je t'ai donné

il ne faut pas simplement espérer ajouté la paramètre /k
il faut regarder la source (le code) et bien regarder comment et avec quels arguments ShellExecute est appelé

 
@+
Cirec

<hr size="2" />

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de Cirec
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 28 nov. 2006 à 11:44
0
Merci
Salut,

Regarde ici :
http://www.delphifr.com/codes/EXECUTER-TOUTES-COMMANDES-DOS-AUTRES-FACILEMENT-SANS-PROBLEMES_34484.aspx

tu devrais y trouver ton bonheur

 
@+
Cirec

<hr size="2" />
Commenter la réponse de Cirec
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 28 nov. 2006 à 11:50
0
Merci
salut,
en cherchant ici,

J'ai trouvé ça.

Y a surement d'autre solution, fait comme moi : cherche....

bonne recherche,
Commenter la réponse de cs_Loda
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 28 nov. 2006 à 12:02
0
Merci
ben ouais,
le lien que je donne permet aussi l'attente de la fin de l'application et juste avec 1 paramètreen plus (/k) dans ligne de commande
 Il permet entre autre chose aussi, de lancer plusieurs commandes en une fois dos où non
ça peut être le lancement d'une application suivi d'une commande dos où d'une autre application etc etc ...

Tu trouvera une démo avec
 
@+
Cirec

<hr size="2" />
Commenter la réponse de Cirec
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 28 nov. 2006 à 14:23
0
Merci
@Cirec : eh, on s'est croisé.... Je devrait rafraichir avant de poster...

A+
Commenter la réponse de cs_Loda
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 28 nov. 2006 à 14:32
0
Merci
that's life

rien de bien grave ... et ça nous arrivera encore
ça fait partie des " problèmes récurants " sur les forums

 
@+
Cirec

<hr size="2" />
Commenter la réponse de Cirec
cs_MicFor 21 Messages postés jeudi 22 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 28 nov. 2006 à 17:04
0
Merci
Oui merci mais l'utilitaire en question n'est pas une commande dos et le /k ne fonctionne pas. N'y aurait-il pas une astuce avec le focus windows car lorsque je lance le ShellExecute, mon application perds le focus lorsque l'utilitaire affiche une barre de progression et en fin de traitement, la fenetre de l'utilitaire s'efface et le focus reviens sur ma fiche. Ce que je voudrais détecter, c'est le retour du focus sur ma fiche indiquant ainsi la fin du traitement. Sous delphi, je ne sais pas si "focus" est bien le terme qui convient, on peut essayer "activation ou desactivation" d'une Fiche. SI vous avez d'autres pistes?
Avec mes remerciements.
Je cherche aussi de mon coté et je vous tiendrais au courant. @+
Commenter la réponse de cs_MicFor
cs_MicFor 21 Messages postés jeudi 22 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 30 nov. 2006 à 12:24
0
Merci
Remerciements à Loda et @Cirec j'ai choisi la formule du ShellExecute avec CMD aprés avoir bataillé avec les problèmes de format des lignes de commande des répertoires et des nom de fichier entre Windows et Dos.
J'ai tout ré-installé avec des noms courts et tout baigne actuellement.
Encore merci à vous deux.
@+ Micfor
Commenter la réponse de cs_MicFor
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 30 nov. 2006 à 13:21
0
Merci
pour les noms long c'est simple il faut les mettes entre guillemets

Ex:

'C:\Mes documents privés'
ne passera pas directement.

Solution:

'"C:\Mes documents privés"'

 
@+
Cirec

<hr size="2" />
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.