LANCER UN FICHIER AVEC SON PROGRAMME PAR DEFAUT SANS SHELLEXECUTE
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
5 juin 2003 à 19:25
cs_cocolou
Messages postés1Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention11 novembre 2004
-
11 nov. 2004 à 15:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_cocolou
Messages postés1Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention11 novembre 2004 11 nov. 2004 à 15:38
Pour moi tout se passe bien sauf que les fichiers de type modèle ([xlt] pour EXCEL, [dot] pour WORD, etc.) ne donnent pas le résultat attendu.
En effet, c'est le fichier modèle lui-même qui est ouvert alors que je souhaite qu'une nouvelle instance du modèle soit ouverte dans un nouveau document.
Merci pour ta (vos) réponse(s).
koj55
Messages postés1Date d'inscriptiondimanche 8 août 2004StatutMembreDernière intervention30 octobre 2004 30 oct. 2004 à 12:06
ShellExecute fonctionne très bien.
Il ne faut simplement pas oublier de mettre le nShowCmd à SW_SHOWNORMAL.
Si tu laisse 0 cela correspond à SW_HIDE !!! Le processus est lancé mais invisible...
cs_goth
Messages postés82Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention23 août 2005 5 juin 2003 à 20:39
Dark Sidious=> thx
Jack => je me fous du hwnd de l'appli lancée(tte facon si t'a le pid c pas un pb). Mon pb avec shellExecute est que si je me sers du "mot" open avec par exemple un fichier txt, il me retourne un code 42 (donc pas un code d'erreur car>32), mais il ne me lance pas notepad (du moins en visible, vu kil apparait simplement dans la liste des processus).
La je me sers de shell et je n'ai aucun pb.
Vala.
Goth
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 juin 2003 à 20:01
Tu te plains que ShellExecute ne te renvoie que le code 42 au lieu du HWnd de l'application lancée, mais tu ne le récupères pas dans ton appli !
Solution :
Au lieu de faire le "Private Sub Command1_Click()", crée ta propre fonction en "Private Function LanceProg (ByVal Fichier as String) as Long"
et dans cette fonction, après le Ret = Shell, tu fais simplement :
LanceProg = Ret
En plus, il faudra remplacer TextFichier.Text par Fichier dans la fonction
Pour l'utiliser :
Hwnd = LanceProg (TextFichier.Text)
Vala.
Jack
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 juin 2003 à 19:25
C'est vrai que c'est bien pensé, et permet de lancer le programme associé à un fichier sans passer par la fonction ShellExecute... mais bon, je n'ai pas encore rencontré de problème avec cette API ;-)
11 nov. 2004 à 15:38
En effet, c'est le fichier modèle lui-même qui est ouvert alors que je souhaite qu'une nouvelle instance du modèle soit ouverte dans un nouveau document.
Merci pour ta (vos) réponse(s).
30 oct. 2004 à 12:06
Il ne faut simplement pas oublier de mettre le nShowCmd à SW_SHOWNORMAL.
Si tu laisse 0 cela correspond à SW_HIDE !!! Le processus est lancé mais invisible...
5 juin 2003 à 20:39
Jack => je me fous du hwnd de l'appli lancée(tte facon si t'a le pid c pas un pb). Mon pb avec shellExecute est que si je me sers du "mot" open avec par exemple un fichier txt, il me retourne un code 42 (donc pas un code d'erreur car>32), mais il ne me lance pas notepad (du moins en visible, vu kil apparait simplement dans la liste des processus).
La je me sers de shell et je n'ai aucun pb.
Vala.
Goth
5 juin 2003 à 20:01
Solution :
Au lieu de faire le "Private Sub Command1_Click()", crée ta propre fonction en "Private Function LanceProg (ByVal Fichier as String) as Long"
et dans cette fonction, après le Ret = Shell, tu fais simplement :
LanceProg = Ret
En plus, il faudra remplacer TextFichier.Text par Fichier dans la fonction
Pour l'utiliser :
Hwnd = LanceProg (TextFichier.Text)
Vala.
Jack
5 juin 2003 à 19:25
9/10 pour l'originalité ;-p
DarK Sidious