2781_fr-FR
Automatisation C #, ouverture et fermeture de l'application JMPBonjour à tous,
J'ai bien réussi à utiliser C # pour automatiser JMP, mais j'obtiens un comportement inattendu lors de l'ouverture et de la fermeture de l'application JMP.
J'ouvre JMP avec:
Application JMP.Application;
app = new JMP.Application ();
Cela fonctionne, mais si une instance de JMP est déjà ouverte et en cours d'exécution, elle sera détournée. Est-il possible de toujours créer une nouvelle application?
Je ferme avec:
app.CloseAllWindows ();
app.Quit ();
Encore une fois, cela ferme ce que j'ai ouvert ou détourné. Est-il possible de fermer celui que j'ai ouvert? Et si je n'en ouvrais pas, ne rien fermer?
Merci!
--Jeff
PS avec JMP version 7.
Le message a été édité par: vJeffRe: automatisation C #, ouverture et fermeture de l'application JMPSalut Jeff:
Moi aussi, je me suis interrogé sur ce comportement et après avoir passé trop de temps à essayer de comprendre comment
pour que cela fonctionne a abandonné et a demandé au personnel de support @ JMP Tech, qui, bien sûr, avait la
répondez immédiatement. Il se comporte de cette façon par la conception (c’est-à-dire en tant que session unique, utilisation multiple).
serveur d'automatisation), et il est relativement simple de changer l'autre comportement si vous le souhaitez (c'est-à-dire,
multi-session à usage unique).
J'ai été dirigé vers la réponse ici:
Note d'utilisation 11089: Comment activer JMP en tant que serveur à usage unique pour automatisation
http://www.jmp.com/support/notes/11/089.html
"Traditionnellement, JMP fonctionnait en tant que serveur d'automatisation à utilisations multiples .... "
C'est, comme MS Powerpoint
"... Pour activer JMP en tant que serveur mono-utilisateur, modifiez la clé de registre ... \ Multiple -> ... \ Single "
C'est-à-dire, comme MS Word et Excel
Voir également:
Comportement GetObject et CreateObject des serveurs d'automatisation Office
http://support.microsoft.com/kb/288902
Comment obtenir le handle de fenêtre pour un serveur Office Automation
http://support.microsoft.com/kb/258511
Exemple de fragment de code en TCL (très similaire à C #, Perl, Python, etc.) choisissez votre outil de script préféré,
les appels aux objets COM sont sensiblement les mêmes.)
Défaut \ Comportement multiple
###################################
# charger un package complémentaire dans TCL pour permettre un accès facile aux appels COM
# inclus dans ActiveState TCL Distro http://www.activestate.com/activetcl/
# www.vex.net/~cthuang/tcom/
# wiki.tcl.tk/1821
forfait nécessite tcom
# attacher à une session existante
set jmp3 [:: tcom :: ref getactiveobject "JMP.Application"];
# lancer JMP (Crée une nouvelle session JMP s'il n'en existe pas encore une. S'il en existe un,
puis s'y attache. Ne peut pas / ne peut pas en créer une seconde)
set jmp [:: tcom :: ref createobject "JMP.Application"];
$ jmp -method Visible 1
Serveur à usage unique pour l'automatisation
###################################
# fire up jmp (crée deux sessions indépendantes ou un seul appel crée une nouvelle session s'il en existe une)
set thing1 [:: tcom :: ref createobject "JMP.Application"];
set thing2 [:: tcom :: ref createobject "JMP.Application"];
$ thing1 -méthode visible 1
$ thing2 -méthode visible 1
# notez les deux références d'objet distinctes créées, thing1 et thing2, elles peuvent être contrôlées indépendamment
Meilleures salutations,
-Mat
Comments
There are no comments yet