Beschreibung
Häufig hat
ein Outlook-Programierer die Aufgabe, während der Bearbeitung einer
E-Mail ein eigenes Formular anzuzeigen, um z.B. weitere Daten vom Anwender
abzufragen Wenn der Anwender Microsoft Word als Maileditor nutzt, dann
gibt es ein Problem: Ihr Code läuft im Prozess Outlooks, während
der Maileditor im Prozess Words läuft. Das bedeutet z.B., dass Sie Ihr
Formular nicht modal zum Mailfenster anzeigen können; ohne Tricks
gelingt es nicht einmal, das Formular in den Vordergrund zu bringen oder ihm
gar den Fokus zu geben. Dr. Jürgen Thümmler stellt die DLL dsmodal kostenlos zur Verfügung: Damit können Sie
ganz einfach ein beliebiges Fenster modal zu einem Fenster eines anderen
Prozesses oder systemmodal anzeigen. Das folgende Beispiel zeigt, wie
Sie die nötigen Fensterhandles ermitteln und dsmodal verwenden. Bitte
kopieren Sie die dsmodal.dll in das Systemverzeichnis (..\winnt\system32),
damit sie gefunden wird. Im Beispiel wird ein VB-Formular verwendet;
weisen Sie vorm Laden des Formulars bitte der Eigenschaft
ParentWindowCaption die Caption-Eigenschaft des Mailfensters zu
(Inspector.Caption). Mit ein paar kleinen Änderungen können
Sie das Beispiel auch in VBA verwenden. Da es dort kein
Form_Load-Ereignis gibt, könnten Sie den Code z.B. einmalig im
Activate-Ereignis aufrufen. Außerdem gibt es im VBA-UserForm
keine Eigenschaft für das Fensterhandle. Mit der
Caption-Eigenschaft und der gezeigten FindChildWindowText-Funktion
ist dessen Ermittlung aber kein Problem. |