Comunicador Oficina: Cómo identificar la apertura de una ventana de mensajería instantánea

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

  •  09-10-2019
  •  | 
  •  

Pregunta

Estoy desarrollando un "mensaje automático" complemento para Office Communicator 2007, pero necesito saber cómo identificar si otro usuario abre la ventana de mensajes instantáneos (no yo, sino otro usuario).

Tengo el siguiente caso:

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

¿Hay alguna manera? Gracias!

¿Fue útil?

Solución

desafortunadamente la API de automatización de Communicator no soporta esto directamente. La única solución que he encontrado consiste en atrapar el evento OnIMWindowContactAdded.

En una conversación iniciada por usted, los siguientes eventos se desencadenan en este orden:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (por sí mismo)
  • OnIMWindowContactAdded (para el otro participante)

En una conversación iniciada por otro participante, los siguientes eventos se desencadenan en este orden:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (para el otro participante)

Así que cuando los iniciados de los participantes de la conversación, que no se ve a sí mismo como el añadido de contacto.

Se podría utilizar esto como sigue

  • En atrapando OnIMWindowCreated, almacenar el identificador de ventana (pIMWindow.HWND) en un diccionario (para que pueda manejar múltiples ventanas de conversación)
  • En atrapando OnIMWindowContactAdded, busca el mango en el diccionario. Si este es el primer evento Añadido has visto por la ventana, la regla es: si el contacto es usted (IsSelf), a continuación, comenzar la conversación. De lo contrario, otro contacto se inició la conversación.

No es la solución más satisfactoria (nunca están cuando se trabaja con la API de automatización; o).), Pero debe llegar hasta allí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top