IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Interaction avec une application externe déjà lancée


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut Interaction avec une application externe déjà lancée
    Bonjour,
    mon problème est assez simple mais je ne trouve rien pour solutionner le problème.
    Je dois faire un programme qui
    - lance une application externe (je prendrais l'exemple Excel même si ce n'est pas celle-ci, ce sera plus parlant pour tout le monde)
    - puis faire un traitement quelconque mais assez long(traitement qui n'a rien à voir avec Excel)
    - puis je dois me brancher sur le excel lancé 10 minutes auparavant pour ouvrir un fichier, executer une macro

    Donc ça je sais faire avec la méthode getObject en VB, et l'équivalent C# (Marshal.GetActiveObject). Ca marche bien mais ça me pose des problèmes si plusieurs Excel sont lancés (la méthode getObject ne me garanti pas la communication avec le excel lancé par mon application, ça peut être n'importe quel autre Excel lancé auparavant) Mais ce n'est pas ça mon problème.

    Là où ça se complique c'est que mon application externe peut se lancer en tâche de fond: c'est à dire qu'il n'y a plus d'UI, j'ai juste un processus qui tourne. Et là le getObject ne fonctionne plus...
    Exemple avec Excel: imaginez que excel est lancé en tâche de fond (donc j'ai juste Excel.exe et son PID (en gros ce que je vois dans le gestionnaire des tâches) et son instance de la classe Process), maintenant je voudrais qu'il execute une macro.


    Donc question comment faire pour utiliser un excel en cours d'execution quand la méthode getObject ne fonctionne pas? juste avec son PID et son nom de processus.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Citation Envoyé par polonain2
    imaginez que excel est lancé en tâche de fond
    En gros, tu as une application (excel = application à toi en fait si j'ai bien compris) qui n'est en fait pas une application mais plutôt un service.

    C'est bien ça ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    Pour moi ce n'est pas un service windows (exécuté par svchost.exe)
    L'application s'appelle CATIA (conception 3D et plein d'autres choses...). C'est une application qu'on lance grâce à l'exe "CNEXT.exe". Lors de l'appel on peut ajouter un paramètre -batch pour dire qu'on lance le programme sans UI. Normalement on donne aussi le nom du macro à exécuter (le langage de la macro se rapproche de Vb/VbScript).

    Là je ne veux pas lancer de macro au moment du lancement (donc l'application serait lancée et ne ferait rien), je veux faire un traitement puis lancer la macro mais je n'ai que son PID et son instance de classe Process.

    Je ne sais pas si c'est clair ou si on parle de la même chose "service"

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Autre question : Est-ce que dans le gestionnaire des tâches, ce process est lancé en tant qu'utilisateur Systeme ou est-ce l'utilisateur connecté qui le tient ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    C'est l'utilisateur client pas le système.

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Citation Envoyé par polonain2
    C'est l'utilisateur client pas le système.
    Ok, donc tes deux process sont dans la même session. Ça n'aurait pas été le cas, ça ne m'aurait pas choqué que le getObject ne fonctionne plus.

    Du coup...
    J'ai pas fait avancé le schmilblick...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    arf dommage moi qui croyait m'en sortir

Discussions similaires

  1. Interargir avec une application externe
    Par pikameuh dans le forum WinDev
    Réponses: 1
    Dernier message: 31/10/2011, 14h19
  2. [WD14] Ouvrir un fichier avec une application externe via LanceAppli()
    Par Fastolph dans le forum WinDev
    Réponses: 13
    Dernier message: 28/09/2011, 09h26
  3. Interaction avec une application
    Par shindara dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2007, 18h29
  4. Communication avec une application externe
    Par Lethal dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/02/2007, 18h30
  5. liaison avec une application externe.
    Par adicor dans le forum MFC
    Réponses: 8
    Dernier message: 05/05/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo