Office Communicator: Comment identifier l'ouverture d'une fenêtre de messagerie instantanée

StackOverflow https://stackoverflow.com/questions/4168049

  •  09-10-2019
  •  | 
  •  

Question

Je développe un « message automatique » add-in pour Office Communicator 2007, mais je dois savoir comment identifier si un autre utilisateur ouvre la fenêtre de messagerie instantanée (pas moi, mais un autre utilisateur).

Je l'événement suivant:

private void communicator_OnIMWindowCreated(object pIMWindow)
{                     
    if ((chk_Enabled.Checked))
    {                
        IMessengerConversationWndAdvanced imWindow = pIMWindow as IMessengerConversationWndAdvanced;
        imWindow.SendText(TxtAutoMessage.Text);
    }
}

Est-il possible? Merci!

Était-ce utile?

La solution

Malheureusement, le Communicator Automation API ne supporte pas directement. La seule solution que j'ai trouvé implique le piégeage de l'événement OnIMWindowContactAdded.

Pour une conversation a commencé par vous, le feu des événements suivants dans cet ordre:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (pour vous)
  • OnIMWindowContactAdded (pour l'autre participant)

Pour une conversation a commencé par un autre participant, les événements suivants le feu dans cet ordre:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (pour l'autre participant)

Ainsi, lorsque les participants initiés la conversation, vous ne vous voyez pas ajouté comme contact.

Vous pouvez utiliser cela comme suit

  • Le piégeage OnIMWindowCreated, stocker la poignée de fenêtre (pIMWindow.HWND) dans un dictionnaire (vous pouvez gérer plusieurs fenêtres de conversation)
  • Le piégeage OnIMWindowContactAdded, recherchez la poignée dans le dictionnaire. Si tel est le premier événement Ajouté que vous avez vu de la fenêtre, la règle est: si le contact est (IsSelf), alors vous avez commencé la conversation. Dans le cas contraire, un autre contact a commencé la conversation.

Ce n'est pas la solution la plus satisfaisante (ils ne sont jamais lorsque vous travaillez avec l'API d'automatisation; o).), Mais il devrait vous y

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top