LANCER UN FICHIER AVEC SON PROGRAMME PAR DEFAUT SANS SHELLEXECUTE

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 5 juin 2003 à 19:25
cs_cocolou Messages postés 1 Date d'inscription jeudi 11 novembre 2004 Statut Membre Dernière intervention 11 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.

https://codes-sources.commentcamarche.net/source/7349-lancer-un-fichier-avec-son-programme-par-defaut-sans-shellexecute

cs_cocolou Messages postés 1 Date d'inscription jeudi 11 novembre 2004 Statut Membre Dernière intervention 11 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és 1 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 30 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és 82 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 23 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és 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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 ;-)

9/10 pour l'originalité ;-p

DarK Sidious
Rejoignez-nous