Récolté des données à partir d'un script pour les utiliser dans un programme

draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011 - 1 juil. 2009 à 15:37
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011 - 6 juil. 2009 à 11:28
Bonjour à tous ,
Et oui je ne peux m'empêcher de vous enquiquiner avec mes questions mais j'en ai tellement appris grace à vous que je sollicite une fois de plus votre aide.
Dans un premier temps, je voudrais savoir si il est possible de lancer un dll. à partir d'un fichier script (Bon celle là n'a pas grand chose à voir avec le C#  mais bon vous comprendrez par la suite).
Avant cela il faut que je tire des informations de calculs effectués par un fichier script, que je puisse l'importer dans mon code C#(Je ne sais pas trop comment m'y prendre).
Merci d'avance pour vos réponses,

6 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
1 juil. 2009 à 16:43
Salut.
1) Lancer une DLL depuis un script => pas possible. Déjà, une DLL ne peut pas être lancée, ensuite tu ne peux utiliser le code d'une dll que depuis un appel par une autre dll ou un exe (dons au final, il te faudra forcément un exe). Cependant, peut-être que le programme que tu utilises qui te sert à exécuter ton script a un moyen de lancer un exe. (déjà, tout dépend du langage de script que tu utilises).

2) Tu veux récupérer les informations fournies par ton script dans une appli C#. Ces infos sont-elles écrites dans un fichier ? Renvoyées par l'interpréteur ? ...

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
1 juil. 2009 à 17:10
J'ai des infos qui viennent de mon fichier script j'utilise une partie de ces données, d'autres viennent de données de types Access. Je ne vois pas ce qu'est un intercepteur. En tout cas les données viennent d'un logiciel qui me donnent des coefficients importants qui sont la base d'un calcul. Et enfin on me demande de renvoyer une valeur dans ce fichier script. Et là pour tout te dire je suis complètement larguer. .
En résumé :
Données fichier script (Vbscript )===>sert pour le calcul en C# ===>  valeur tirer de l'exe dans le fichier script.
La machine vu sa programmation ne peut accepter que des fichiers script. Du coup, je suis perdu. Que me conseilles tu de faire du coup?
Je sais que j'en demande un peu trop, peut être? mais là je n'ai plus aucune idée.
Merci d'avance
++
0
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
2 juil. 2009 à 14:29
Salut,
je crois que j'ai trouvé un moyen pour résoudre mon problème. Je vais passer par la construction d'un "Acive X". Par contre je ne sais pas comment faire pour le programmer et compiler pour l'utiliser dans le fichier script.
Les prochaines questions sont les suivantes :

- Est il possible de programmer tout ce que j'ai programmé auparavant de mon fichier (.exe) en Active X? Si non ,quelles sont les principales différences qu'il y a dans son implementation?

- Je sais que dans mon fichier script je dois faire en sorte de créer mon objet. Mais je suppose que je dois importer l'Active X contenant toutes mes classes et méthodes ? mais comment l'importer dans mon fichier script?

Merci d'avance pour vos réponses ^^.
0
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
6 juil. 2009 à 10:26
Bon salut à tous,
Après maints essaies parfois incfructueux, j'ai totalement changé de d'idée (ou plutot j'ai fais changer d'avis mon patron^^). Donc Je dois lancer mon programme en .exe, car créer un activeX impliquerai que celui ci serait utilisé pour plusieurs programmes (ce qui n'est pas mon cas ^^). Par contre après des recherches sur des forums, j'ai appris que la technologie Active X est dépassée et est remplacée par la technologie .NET ^^. Voilà, donc pour revenir à mon problème de départ j'ai réussi à lancer mon exe du fichier script.
code du fichier script
set WshShell = WScript.CreateObject("WScript.shell")
WshShell.Run "C:\test_on_code_script\communication_script_Cs.exe a b c"


les arguments 'a' 'b' et 'c' seront directement accessible à partir du main et là vous pourrez faire toute vos manipulation

code C#
static void Main (string [] args){
       Console.WriteLine("premier argument envoyer par le script est : "+args[0] );
       Console.WriteLine("deuxieme argument envoyer par le script est : "+args[1] );
       Console.WriteLine("troisieme argument envoyer par le script est : "+args[3] );
}
/* Si vous n'avez pas fait d'erreurs sur la taille du tableau (ici il faut mettre les conditions sur la taille) vous obtenez sur la console 
a
b
c
*/


Bon ceci peut servir au débutant tel que moi  : p
Par contre c'est bien beau de pouvoir récupérer les valeurs d'un script mais l'inverse est-il possible ? je suppose que oui mais comment accéder aux variables du C# ? Faut il les enregistrer aussi dans l'argument args? J'ai tenté plusieurs fois d'y accéder mais pas possible (en C++ je pense qu'il suffit juste que j'utilise les addresses)
 mais là je suis perdu
thanks pour vos réponses ^^
0

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

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
6 juil. 2009 à 10:54
args[] correspond juste à la ligne de commande de ton programme, il n'est pas modifiable, je crois, mais de toutes façons, ça ne servirait à rien de le modifier (même en C++ ça ne servirait à rien).

Pour envoyer des valeurs à ton script depuis C#, utilise System.Diagnostics.Process.Start("cheminDuScript", "arguments");

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
6 juil. 2009 à 11:28
Salut,
Je viens de voir les informations que tu viens de m'envoyer. et après quelques recherches sur le net il y a deux ou trois choses que je n'arrive pas à comprendre?
Par exemple , l'arguement consiste en quoi est ce en un par exemple :
      "a = "+mon_entier.ToString();


De plus j'ai vu que là il s'agissait de faire commencer un nouveau script Process.Start (ou peut être que j'ai mal compris). Mais mon but est de rejoindre est de mettre la variable dans le même script que celui qui a lancé l'exe...
Merci pour les éclairessissements ,
0
Rejoignez-nous