draonix
Messages postés43Date d'inscriptionmercredi 27 mai 2009StatutMembreDernière intervention 7 juin 2011
-
13 août 2009 à 15:59
cs_GhostMoon
Messages postés82Date d'inscriptiondimanche 14 mars 2010StatutMembreDernière intervention17 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.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 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 ...)
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 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
==============================================
draonix
Messages postés43Date d'inscriptionmercredi 27 mai 2009StatutMembreDerniè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.
draonix
Messages postés43Date d'inscriptionmercredi 27 mai 2009StatutMembreDerniè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.