cebtpdev
Messages postés2Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention13 août 2004
-
13 août 2004 à 12:18
cebtpdev
Messages postés2Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention13 août 2004
-
13 août 2004 à 14:35
Je cherche en urgence l'astuce qui me permet d'appeler un programme exécutable (.exe).
En fait, j'ai un projet qui a une interface de saisie de données, pour qu'il lance les calcul (et c'est sa ma question) : il doit appeler des modules externe (en réalité c'est des projets sous VB mais transformer en exécutable) qu'il leurs passe des params, ils font les calculs et il redonne la main au programme principale avec les résultats de calcul.
Merci infiniment et d'avance de votre aide
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 août 2004 à 12:30
Salut cebtpdev
Pour lancer un EXE en lui fournissant des paramètres, pas de problème. Il suffit de lancer :
Shell ("C:\MonProg.exe /Param1=18 /Param2=3 /Param3=1")
Il faudra aménager MonProg.exe pour qu'il recherche les paramètres fournis : il suffit qu'il lise la variable Command$ qui contiendra "/Param1=18 /Param2=3 /Param3=1". Tu n'auras plus qu'à dissocier les paramètres avec un Split par exemple.
Par contre, pour que ton MonProg.exe renvoie une valeur au premier programme, là, ça devient complexe (faisable mais complexe).
La première idée qui me viendrait à l'esprit serait de créer des DLL plutôt que des EXE.
Dans le projet MonProg, dit lui qu'il s'agit d'une DLL (Projet, Propriétés, Type de projet "DLL ActiveX), transforme la (ou les) Functions qui font les calculs en Public :
Public Function MaFonction(Param1 As Long, Param2 As Long, Param3 As Long) As Long
Dans ton projet principal, il te suffit de mettre la DLL ainsi crée en Référence (menu Projet/Références) et ensuite, il te suffit d'utiliser la fonction dans la DLL comme si elle était dans ton application :
Résultat = MonProg.MaFonction(18, 3, 1)
Si tu le veux, tu pourras rentrer toutes tes fonctions dans cette même DLL.