Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

AddinWord qui ne se lance que la 1ere*, pas les suivantes

5 réponses
Avatar
teachespeaches
Bonjour, je suis entrain de faire un petit plug-in pour Word (projet
d'extensibilité).

Le problème que je rencontre est le suivant: dans mon addin j'ai ajouté une
panelbare avec un bouton, et un évenement sur le click du bouton. L'addin
fonctionne la 1ere fois que je lance Word, mais si je lance plusieurs fois
Word (en même temps). La première instance de Word fonctionne et pas les
suivantes.

Mon bouton est présent sur toutes les fenêtres de Word, mais l'action qui
lui est attribué ne fonctionne que sur la 1ere instance de Word.

Quelqu'un voit-il pourquoi?

J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete

Merci,

Peaches

5 réponses

Avatar
Paul Bacelar
Etes-vous sûr d'avoir plusieurs instance du programme Word qui tournent en
même temps, je dis bien instance de Word (l'exécutable) et pas plusieurs
fenêtre de Word.

Quand vous ouvrez un nouveau fichier Word, il est très probable que vous ne
créez pas un nouveau composant Application de Word mais que vous créez une
nouvelle fenêtre dans le même composant Application. Si vous devez faire
quelque chose sur les fenêtres des documents ouverts, essayer de réagir à la
création de ces fenêtres et ne pas faire une manipulation au moment de l'
initialisation du composant Application de Word.

--
Paul Bacelar

"teachespeaches" wrote in message
news:
Bonjour, je suis entrain de faire un petit plug-in pour Word (projet
d'extensibilité).

Le problème que je rencontre est le suivant: dans mon addin j'ai ajouté


une
panelbare avec un bouton, et un évenement sur le click du bouton. L'addin
fonctionne la 1ere fois que je lance Word, mais si je lance plusieurs fois
Word (en même temps). La première instance de Word fonctionne et pas les
suivantes.

Mon bouton est présent sur toutes les fenêtres de Word, mais l'action qui
lui est attribué ne fonctionne que sur la 1ere instance de Word.

Quelqu'un voit-il pourquoi?

J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete

Merci,

Peaches


Avatar
teachespeaches
J'ai oublié de présicer que j'utilise word2003. En effet, il n'y a bien
qu'une seule instance du programme(winword.exe).

je vois ce que vous voulez dire, mais le truc étrange, c est que mon bouton
ne devrait pas se trouver sur les fenêtres de Word après le 1er doc
ouverts...Or le bouton est présent sur chaque fenêtre, il y a juste l'action
qui lui est associée qui ne fonctionne pas.

Pourriez vous me dire comment détecter la création/ouverture d'un nouveau
document? je n'ai que "OnConnection", "OnDisconnection", "OnAddInsUpdate",
"OnStartupComplete"
et "OnBeginShutdown"


Sinon le problème vient peut etre de mon event handler...voici ce que j'ai
mis:
insertText.Click += new
Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(insertText_Click);

public void insertText_Click(Microsoft.Office.Core.CommandBarButton
barButton, ref bool someBool)
{
this.appWord.ActiveWindow.Selection.TypeText("test");
}


A moins que l'erreur en vienne de appWord...

appWord a été déclaré dans la classe Connect: Word.Application appWord;
Et je l'ai instancié comme ceci;
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
applicationObject = application;
addInInstance = addInInst;
appWord = (Word.Application)applicationObject;
}

Voilà le topo...je suis un peu perdu dans tout ca.

J'espere que vous pourez m'aider

"Paul Bacelar" a écrit :

Etes-vous sûr d'avoir plusieurs instance du programme Word qui tournent en
même temps, je dis bien instance de Word (l'exécutable) et pas plusieurs
fenêtre de Word.

Quand vous ouvrez un nouveau fichier Word, il est très probable que vous ne
créez pas un nouveau composant Application de Word mais que vous créez une
nouvelle fenêtre dans le même composant Application. Si vous devez faire
quelque chose sur les fenêtres des documents ouverts, essayer de réagir à la
création de ces fenêtres et ne pas faire une manipulation au moment de l'
initialisation du composant Application de Word.

--
Paul Bacelar

"teachespeaches" wrote in message
news:
> Bonjour, je suis entrain de faire un petit plug-in pour Word (projet
> d'extensibilité).
>
> Le problème que je rencontre est le suivant: dans mon addin j'ai ajouté
une
> panelbare avec un bouton, et un évenement sur le click du bouton. L'addin
> fonctionne la 1ere fois que je lance Word, mais si je lance plusieurs fois
> Word (en même temps). La première instance de Word fonctionne et pas les
> suivantes.
>
> Mon bouton est présent sur toutes les fenêtres de Word, mais l'action qui
> lui est attribué ne fonctionne que sur la 1ere instance de Word.
>
> Quelqu'un voit-il pourquoi?
>
> J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete
>
> Merci,
>
> Peaches





Avatar
Paul Bacelar
En utilisant l'interface ApplicationEvents2_Event de votre appWord ?

appWord = (Word.Application)applicationObject;


appWord .ApplicationEvents2_Event_DocumentOpen += new
ApplicationEvents2_DocumentOpenEventHandler(toto);

public void toto(Word.Document){
// le code qui prend en compte l'ouverture d'un nouveau document
...
}
--
Paul Bacelar

"teachespeaches" wrote in message
news:
J'ai oublié de présicer que j'utilise word2003. En effet, il n'y a bien
qu'une seule instance du programme(winword.exe).

je vois ce que vous voulez dire, mais le truc étrange, c est que mon


bouton
ne devrait pas se trouver sur les fenêtres de Word après le 1er doc
ouverts...Or le bouton est présent sur chaque fenêtre, il y a juste


l'action
qui lui est associée qui ne fonctionne pas.

Pourriez vous me dire comment détecter la création/ouverture d'un nouveau
document? je n'ai que "OnConnection", "OnDisconnection", "OnAddInsUpdate",
"OnStartupComplete"
et "OnBeginShutdown"


Sinon le problème vient peut etre de mon event handler...voici ce que j'ai
mis:
insertText.Click += new



Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(insertText_C
lick);

public void insertText_Click(Microsoft.Office.Core.CommandBarButton
barButton, ref bool someBool)
{
this.appWord.ActiveWindow.Selection.TypeText("test");
}


A moins que l'erreur en vienne de appWord...

appWord a été déclaré dans la classe Connect: Word.Application appWord;
Et je l'ai instancié comme ceci;
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
applicationObject = application;
addInInstance = addInInst;
appWord = (Word.Application)applicationObject;
}

Voilà le topo...je suis un peu perdu dans tout ca.

J'espere que vous pourez m'aider

"Paul Bacelar" a écrit :

> Etes-vous sûr d'avoir plusieurs instance du programme Word qui tournent


en
> même temps, je dis bien instance de Word (l'exécutable) et pas plusieurs
> fenêtre de Word.
>
> Quand vous ouvrez un nouveau fichier Word, il est très probable que vous


ne
> créez pas un nouveau composant Application de Word mais que vous créez


une
> nouvelle fenêtre dans le même composant Application. Si vous devez faire
> quelque chose sur les fenêtres des documents ouverts, essayer de réagir


à la
> création de ces fenêtres et ne pas faire une manipulation au moment de


l'
> initialisation du composant Application de Word.
>
> --
> Paul Bacelar
>
> "teachespeaches" wrote in


message
> news:
> > Bonjour, je suis entrain de faire un petit plug-in pour Word (projet
> > d'extensibilité).
> >
> > Le problème que je rencontre est le suivant: dans mon addin j'ai


ajouté
> une
> > panelbare avec un bouton, et un évenement sur le click du bouton.


L'addin
> > fonctionne la 1ere fois que je lance Word, mais si je lance plusieurs


fois
> > Word (en même temps). La première instance de Word fonctionne et pas


les
> > suivantes.
> >
> > Mon bouton est présent sur toutes les fenêtres de Word, mais l'action


qui
> > lui est attribué ne fonctionne que sur la 1ere instance de Word.
> >
> > Quelqu'un voit-il pourquoi?
> >
> > J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete
> >
> > Merci,
> >
> > Peaches
>
>
>


Avatar
teachespeaches
Je n'ai pas pu faire comme vous l'avez écrit, j'ai du faire comme ceci pour
etre débarassé des erreurs de complil:
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
applicationObject = application;
addInInstance = addInInst;
appWord = (Word.Application)applicationObject;
evWord = (Word.ApplicationEvents2_DocumentOpenEventHandler)applicationObject;
evWord+= new Word.ApplicationEvents2_DocumentOpenEventHandler(toto);
}

Plus d'erreurs, mais rien ne se passe lorsque j'ouvre Word, que j'ouvre, ou
que je crée un nouveau document, donc l'évenement ne se déclanche pas.

Personnelement je n'ai toujours pas comppris pourquoi ce que j'avais fais ne
fonctionne pas. C est comme si tout code qui se trouve hors des 5 méthodes
préfaite (onconnectio, etc) n'est plus lu apres le 1er lancement de Word
"Paul Bacelar" a écrit :

En utilisant l'interface ApplicationEvents2_Event de votre appWord ?

> appWord = (Word.Application)applicationObject;
appWord .ApplicationEvents2_Event_DocumentOpen += new
ApplicationEvents2_DocumentOpenEventHandler(toto);

public void toto(Word.Document){
// le code qui prend en compte l'ouverture d'un nouveau document
....
}
--
Paul Bacelar

"teachespeaches" wrote in message
news:
> J'ai oublié de présicer que j'utilise word2003. En effet, il n'y a bien
> qu'une seule instance du programme(winword.exe).
>
> je vois ce que vous voulez dire, mais le truc étrange, c est que mon
bouton
> ne devrait pas se trouver sur les fenêtres de Word après le 1er doc
> ouverts...Or le bouton est présent sur chaque fenêtre, il y a juste
l'action
> qui lui est associée qui ne fonctionne pas.
>
> Pourriez vous me dire comment détecter la création/ouverture d'un nouveau
> document? je n'ai que "OnConnection", "OnDisconnection", "OnAddInsUpdate",
> "OnStartupComplete"
> et "OnBeginShutdown"
>
>
> Sinon le problème vient peut etre de mon event handler...voici ce que j'ai
> mis:
> insertText.Click += new
>
Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(insertText_C
lick);
>
> public void insertText_Click(Microsoft.Office.Core.CommandBarButton
> barButton, ref bool someBool)
> {
> this.appWord.ActiveWindow.Selection.TypeText("test");
> }
>
>
> A moins que l'erreur en vienne de appWord...
>
> appWord a été déclaré dans la classe Connect: Word.Application appWord;
> Et je l'ai instancié comme ceci;
> public void OnConnection(object application, Extensibility.ext_ConnectMode
> connectMode, object addInInst, ref System.Array custom)
> {
> applicationObject = application;
> addInInstance = addInInst;
> appWord = (Word.Application)applicationObject;
> }
>
> Voilà le topo...je suis un peu perdu dans tout ca.
>
> J'espere que vous pourez m'aider
>
> "Paul Bacelar" a écrit :
>
> > Etes-vous sûr d'avoir plusieurs instance du programme Word qui tournent
en
> > même temps, je dis bien instance de Word (l'exécutable) et pas plusieurs
> > fenêtre de Word.
> >
> > Quand vous ouvrez un nouveau fichier Word, il est très probable que vous
ne
> > créez pas un nouveau composant Application de Word mais que vous créez
une
> > nouvelle fenêtre dans le même composant Application. Si vous devez faire
> > quelque chose sur les fenêtres des documents ouverts, essayer de réagir
à la
> > création de ces fenêtres et ne pas faire une manipulation au moment de
l'
> > initialisation du composant Application de Word.
> >
> > --
> > Paul Bacelar
> >
> > "teachespeaches" wrote in
message
> > news:
> > > Bonjour, je suis entrain de faire un petit plug-in pour Word (projet
> > > d'extensibilité).
> > >
> > > Le problème que je rencontre est le suivant: dans mon addin j'ai
ajouté
> > une
> > > panelbare avec un bouton, et un évenement sur le click du bouton.
L'addin
> > > fonctionne la 1ere fois que je lance Word, mais si je lance plusieurs
fois
> > > Word (en même temps). La première instance de Word fonctionne et pas
les
> > > suivantes.
> > >
> > > Mon bouton est présent sur toutes les fenêtres de Word, mais l'action
qui
> > > lui est attribué ne fonctionne que sur la 1ere instance de Word.
> > >
> > > Quelqu'un voit-il pourquoi?
> > >
> > > J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete
> > >
> > > Merci,
> > >
> > > Peaches
> >
> >
> >





Avatar
Paul Bacelar
>evWord (Word.ApplicationEvents2_DocumentOpenEventHandler)applicationObject;



Vous êtes sûr que ça marche ?
--
Paul Bacelar

"teachespeaches" wrote in message
news:
Je n'ai pas pu faire comme vous l'avez écrit, j'ai du faire comme ceci


pour
etre débarassé des erreurs de complil:
public void OnConnection(object application, Extensibility.ext_ConnectMode
connectMode, object addInInst, ref System.Array custom)
{
applicationObject = application;
addInInstance = addInInst;
appWord = (Word.Application)applicationObject;
evWord (Word.ApplicationEvents2_DocumentOpenEventHandler)applicationObject;
evWord+= new Word.ApplicationEvents2_DocumentOpenEventHandler(toto);
}

Plus d'erreurs, mais rien ne se passe lorsque j'ouvre Word, que j'ouvre,


ou
que je crée un nouveau document, donc l'évenement ne se déclanche pas.

Personnelement je n'ai toujours pas comppris pourquoi ce que j'avais fais


ne
fonctionne pas. C est comme si tout code qui se trouve hors des 5 méthodes
préfaite (onconnectio, etc) n'est plus lu apres le 1er lancement de Word
"Paul Bacelar" a écrit :

> En utilisant l'interface ApplicationEvents2_Event de votre appWord ?
>
> > appWord = (Word.Application)applicationObject;
> appWord .ApplicationEvents2_Event_DocumentOpen += new
> ApplicationEvents2_DocumentOpenEventHandler(toto);
>
> public void toto(Word.Document){
> // le code qui prend en compte l'ouverture d'un nouveau document
> ....
> }
> --
> Paul Bacelar
>
> "teachespeaches" wrote in


message
> news:
> > J'ai oublié de présicer que j'utilise word2003. En effet, il n'y a


bien
> > qu'une seule instance du programme(winword.exe).
> >
> > je vois ce que vous voulez dire, mais le truc étrange, c est que mon
> bouton
> > ne devrait pas se trouver sur les fenêtres de Word après le 1er doc
> > ouverts...Or le bouton est présent sur chaque fenêtre, il y a juste
> l'action
> > qui lui est associée qui ne fonctionne pas.
> >
> > Pourriez vous me dire comment détecter la création/ouverture d'un


nouveau
> > document? je n'ai que "OnConnection", "OnDisconnection",


"OnAddInsUpdate",
> > "OnStartupComplete"
> > et "OnBeginShutdown"
> >
> >
> > Sinon le problème vient peut etre de mon event handler...voici ce que


j'ai
> > mis:
> > insertText.Click += new
> >
>


Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(insertText_C
> lick);
> >
> > public void insertText_Click(Microsoft.Office.Core.CommandBarButton
> > barButton, ref bool someBool)
> > {
> > this.appWord.ActiveWindow.Selection.TypeText("test");
> > }
> >
> >
> > A moins que l'erreur en vienne de appWord...
> >
> > appWord a été déclaré dans la classe Connect: Word.Application


appWord;
> > Et je l'ai instancié comme ceci;
> > public void OnConnection(object application,


Extensibility.ext_ConnectMode
> > connectMode, object addInInst, ref System.Array custom)
> > {
> > applicationObject = application;
> > addInInstance = addInInst;
> > appWord = (Word.Application)applicationObject;
> > }
> >
> > Voilà le topo...je suis un peu perdu dans tout ca.
> >
> > J'espere que vous pourez m'aider
> >
> > "Paul Bacelar" a écrit :
> >
> > > Etes-vous sûr d'avoir plusieurs instance du programme Word qui


tournent
> en
> > > même temps, je dis bien instance de Word (l'exécutable) et pas


plusieurs
> > > fenêtre de Word.
> > >
> > > Quand vous ouvrez un nouveau fichier Word, il est très probable que


vous
> ne
> > > créez pas un nouveau composant Application de Word mais que vous


créez
> une
> > > nouvelle fenêtre dans le même composant Application. Si vous devez


faire
> > > quelque chose sur les fenêtres des documents ouverts, essayer de


réagir
> à la
> > > création de ces fenêtres et ne pas faire une manipulation au moment


de
> l'
> > > initialisation du composant Application de Word.
> > >
> > > --
> > > Paul Bacelar
> > >
> > > "teachespeaches" wrote in
> message
> > > news:
> > > > Bonjour, je suis entrain de faire un petit plug-in pour Word


(projet
> > > > d'extensibilité).
> > > >
> > > > Le problème que je rencontre est le suivant: dans mon addin j'ai
> ajouté
> > > une
> > > > panelbare avec un bouton, et un évenement sur le click du bouton.
> L'addin
> > > > fonctionne la 1ere fois que je lance Word, mais si je lance


plusieurs
> fois
> > > > Word (en même temps). La première instance de Word fonctionne et


pas
> les
> > > > suivantes.
> > > >
> > > > Mon bouton est présent sur toutes les fenêtres de Word, mais


l'action
> qui
> > > > lui est attribué ne fonctionne que sur la 1ere instance de Word.
> > > >
> > > > Quelqu'un voit-il pourquoi?
> > > >
> > > > J'ai ajouté ma commandbar et mon bouton dans OnStartupComplete
> > > >
> > > > Merci,
> > > >
> > > > Peaches
> > >
> > >
> > >
>
>
>