Manipuler les commandes d'un programme ouvert

Résolu
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011 - 13 août 2009 à 15:59
cs_GhostMoon Messages postés 82 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 17 juin 2013 - 23 mars 2010 à 15:21
Bonjour à tous,

Je rencontre actuellement un problème concernant l'ouverture et la manipulation d'un programme .exe à partir de mon programme C#.
En gros, avec ce programme je voudrais ouvrir un certain fichier que je viens de manipuler et ensuite le sauvegarder avec ce même programme. En effet, ce fichier est une librairie et le programme .exe permet d'ordonner automatiquement et d'une certaine manière celle-ci afin de pouvoir l'utiliser pour une certaine application. Si elle n'est pas rangée correctement, cette application en peut pas l'utiliser. Or j'aimerais éviter d'ouvrir manuellement ce petit programme .exe juste pour l'ouvrir et le sauvegarder une fois qu'il a fini d'ordonner.
J'ai vu qu'il était possible d'ouvrir un programme en background (pas visible en fait) mais est-il aussi possible de lui informer d'aller dans Fichier, Ouvrir et une fois cela réalisé de lui ordonner de sauvegarder et de quitter automatiquement.
Je précise aussi que le fichier que je veux ouvrir ne s'ouvre pas automatiquement avec la petite application .exe et que je suis obligé de passer par Fichier, Ouvrir.

Merci d'avance.

6 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
15 août 2009 à 12:12
Bonjour,

Je suppose que tu n'as pas le code du programme executable que tu essaies de controler, sinon ce serait trop simple lol.

Si ce programme peut être controlé par des séquences de touches genre Ctrl+O pour open et Ctrl+S pour save, tu dois pouvoir le controler depuis ton programme C# avec la class SendKey.

L'idée est de lancer le programme exe (class Process)
puis de le rendre actif (AppActivate)
ensuite de lancer les séquences de touches (class SendKeys)

par contre le programme exe sera sans doute visible, je ne connais pas de méthode permettant de controler un programme tournant en tâche de fond si celui-ci n'est pas prévu pour ça (Pipe, socket ...)

Bon code.
C# is amazing, enjoy it!
3
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
13 août 2009 à 17:13
Salut,
tu ne peux pas utiliser une dll(bibliothèque) de ton programme qui ordonne et d'utiliser les fonctions implémenter à l'intérieur ?
Cela te permettrait de ne plus faire appel à ce programme.


==============================================
Possible meet Impossible to become...Possimpible
==============================================
0
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
14 août 2009 à 07:21
Salut,

Tout d'abord, merci pour ta réponse mais bon, malheureusement ça ne marchera pas. Justement j'utilise les fonctions du dll pour éviter de lancer le programme pour modifier mes librairies.
Cependant, pour l'organisation automatique de celle-ci, il n'y a pas de fonction disponible. Quand j'ouvre le programme avec une librairie désorganisée, il la réorganise automatiquement au démarrage et je trouve pas la fonction permettant de faire ça.
C'est pourquoi je souhaitais passer par une autre méthode.

Si tu as d'autres idées je suis preneur. Mer ci quand même.
0
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
14 août 2009 à 15:37
Salut,
peut être que d'autres applications font la même chose et que leurs librairies permettent de faire ce que tu souhaites...


==============================================
Possible meet Impossible to become...Possimpible
==============================================
0

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

Posez votre question
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
17 août 2009 à 08:26
Merci beaucoup pour ton aide Robert33. Je vais essayer ça aujourd'hui ou demain. Le programme est bien controlable par les raccourcis usuels donc ça devrait pas poser trop de problème.
Je te remercie de m'avoir donné le nom des classes.
0
cs_GhostMoon Messages postés 82 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 17 juin 2013
23 mars 2010 à 15:21
vous pouvez publier le code pour l'essayer car je suis débutante en c# !!!
0
Rejoignez-nous