Execution de programme automatique

Signaler
Messages postés
200
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
24 mars 2012
-
Messages postés
71
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
29 mars 2007
-
Salut à tous,

J'aurais aimé savoir comment à partir du nom d'un fichier lancer le programme paramêtrer dans windows (ex : *.doc ouvre word)

J'ai bien penser au shellExecute mais il ne le reconnait pas en .net ou alors je n'ai pas chargé la librairie.
Si c'est ça, merci de m'indiquer laquelle c'est sinon de m'aider à trouver une solution simple claire et éficace (par rapport à des sources trouvées sur le forum).

Au point où j'en suis, je me demande s'il ne faut pas que je me fasse un fichier .ini où tout est déjà paramêtrer mais bon il doit y avoir plus simple.

Merci de votre aide à tous.

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
ShellExecute est une api windows. Il faut la déclarer avec une instruction Declare.

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
Déclaration déjà corrigée pour .NET

Tu peux aussi regarder ma source, moins performante que ShellExecute, ici
Attention, elle est prevu pour VB6. Pour .NET il faut corriger les type de variables.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
71
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
29 mars 2007

Salut,

L'opération a l'air assez intéressante.

Mais ne peut-on pas faire la même chose en .NET en exploitant une des librairie native de l'environnement, typiquement en faisant un #include dans l'entête du module ?

+,
Kharrat
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut,


Tu peux utiliser Shell(Nom du fichier)


Exemple : Shell("C:/test.doc") et
cà va lancer le fichier test.doc avec le programme sur la machine qui
le prend en charge (par exemple : word s'il est installé ou openoffice
ca dépend ce qui est installé)

@+
Messages postés
71
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
29 mars 2007

salut,

merci pour ta réponse.

en ce moment, je fais du JAVA. dans ce cadre, je dois faire la même chose que ce que je pensais faire au début en C#.

j'exécute tout un tas de traitements et après je lance un éditeur de texte (ultra edit 32, à télécharger absolument pour ce qui ne le connaissent pas encore !!!) dans lequel j'affiche les logs d'exécution.

la classe JAVA utilisée est Runtime. chaque application JAVA a son propre Runtime(pas d'instanciation possible). l'intérêt, c'est qu'il n'y a aucun import à faire (Runtime appartient à java.lang).

la méthode

Runtime.exec("uedit32 monTexte.txt");

lance l'éditeur en question.

la méthode exec retourne un Process. il est donc possible de contrôler le processus exécuté depuis l'application.

en résumé : c'est trop top !

désolé pour cette longue digression sur JAVA (qui n'est peut-être pas veinne). voilà où je voulais en venir: je ne sais pas si C# a quelque chose d'aussi puissant (et d'aussi simple) dans ses tiroirs, mais je suis prêt à parier que oui. au pire un petit import (oups... include) à rajouter et "en voiture tout le monde !"

à vos claviers !
kharrat