Frage

Ich bin eine „automatische Meldung“ Add-In für Office Communicator 2007 zu entwickeln, aber ich muss wissen, wie zu erkennen, ob ein anderer Benutzer das IM-Fenster (nicht mich, aber ein anderer Benutzer) öffnet sich.

Ich habe folgendes Ereignis:

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

Gibt es eine Möglichkeit? Dank!

War es hilfreich?

Lösung

leider ist die Communicator Automation API dies nicht direkt unterstützt. Die Problemumgehung nur habe ich festgestellt beinhaltet das OnIMWindowContactAdded Ereignis Trapping.

Für ein Gespräch, indem Sie die folgenden Ereignisse Feuer in dieser Reihenfolge gestartet:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (für sich selbst)
  • OnIMWindowContactAdded (für die anderen Teilnehmer)

Für ein Gespräch von einem anderen Teilnehmer gestartet, das folgenden Ereignisse Feuer in dieser Reihenfolge:

  • OnIMWindowCreated
  • OnIMWindowContactAdded (für die anderen Teilnehmer)

Also, wenn die Teilnehmer initiiert das Gespräch, das Sie nicht selbst als Kontakt hinzugefügt.

Sie können dies wie folgt verwenden

  • Ein OnIMWindowCreated Trapping, speichern Sie den Fenstergriff (pIMWindow.HWND) in einem Wörterbuch (so dass Sie mehrere Konversationsfenster verarbeiten können)
  • Ein Trapping OnIMWindowContactAdded, sucht den Griff im Wörterbuch. Wenn dies das erste Added Ereignis ist, dass Sie für das Fenster gesehen haben, ist die Regel: Wenn der Kontakt, den Sie (IsSelf) ist, dann sind Sie das Gespräch begonnen. Ansonsten begann ein weiterer Kontakt, das Gespräch.

Es ist nicht die am besten geeignete Lösung (sie nie sind, wenn Sie mit dem Automation API arbeiten; o).), Aber es sollte man dort

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top