Retour au prg aprés un ShellExecute

Résolu
cs_MicFor Messages postés 21 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 - 28 nov. 2006 à 11:34
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 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

8 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
28 nov. 2006 à 18:57
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" />
3
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
28 nov. 2006 à 11:50
salut,
en cherchant ici,

J'ai trouvé ça.

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

bonne recherche,
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
28 nov. 2006 à 12:02
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" />
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
28 nov. 2006 à 14:23
@Cirec : eh, on s'est croisé.... Je devrait rafraichir avant de poster...

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
28 nov. 2006 à 14:32
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" />
0
cs_MicFor Messages postés 21 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 8 octobre 2007
28 nov. 2006 à 17:04
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. @+
0
cs_MicFor Messages postés 21 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 8 octobre 2007
30 nov. 2006 à 12:24
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
30 nov. 2006 à 13:21
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" />
0
Rejoignez-nous