AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

Ein Thema von QStorm · begonnen am 16. Dez 2015 · letzter Beitrag vom 21. Dez 2015
Antwort Antwort
QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#1

Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

  Alt 16. Dez 2015, 13:04
Hallo,

Ich verwendet Ole, um eine E-Mail via Outlook zu versenden (bzw. den E-Mail-Dialog anzuzeigen):
Delphi-Quellcode:
var
 Outlook : OleVariant;
 MailItem : Variant;
const
  olMailItem = 0;
begin
  try
     Outlook := (GetActiveOleObject('Outlook.Application'));
  except
     Outlook := (CreateOleObject('Outlook.Application'));
  end;
  MailItem := (Outlook.CreateItem(olMailItem));

  // ...

  MailItem.Display(False); // darf nicht modal sein
end;
Ich möchte, dass der E-Mail-Dialog im Vordergrund angezeigt wird. Folgendes habe ich versucht:
Delphi-Quellcode:
// Variante #1:
Outlook.ActiveWindow.Activate;
// oder
OleVariant(Outlook.ActiveWindow).Activate;

// Variante #2 (MailInspector ist vom Typ Variant):
MailInspector := (MailItem.GetInspector);
MailInspector.Activate;
Variante #1 funktioniert unter Windows 7 gar nicht. Das Outlook Icon blinkt in der Taskleiste, der Dialog ist jedoch im Hintergrund.
Variante #2 funktioniert unter Windows 7 nur, wenn Outlook selber vor dem Methodenaufruf gestartet wurde ("GetActiveOleObject" erfolgreich war) UND nicht minimiert ist.

Wie bekomme ich es hin, dass der E-Mail-Dialog im Vordergrund angezeigt/gestartet wird?
Kommt man via Ole irgendwie an das Handle des Dialogs heran?


Ich habe gelesen, dass sich das Fensterhandling ab Windows Vista geändert hat. Auch zu dieser Problematik habe ich einige Themen im Internet gefunden. Leider war dabei keine Lösung, die unter Windows 7 funktioniert hat.

Hinweis: Ich verwende zum Testen Outlook 2007.

Vielen Dank im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.076 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

  Alt 16. Dez 2015, 13:18
Wieso versendest du die Mail nicht per MAPI.
Da klappt es (mit Outlook) fast immer auf anhieb
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#3

AW: Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

  Alt 16. Dez 2015, 13:23
Wieso versendest du die Mail nicht per MAPI.
Da klappt es (mit Outlook) fast immer auf anhieb
Ich habe auch eine Variante via MAPI (diese verwende ich, wenn Outook nicht der Standard E-Mail Client ist). Leider ist der Outlook E-Mail-Dialog dann immer modal und blockiert andere Anwendungen. Sprich man kann nicht weiterarbeiten ohne den Dialog zu schließen.
  Mit Zitat antworten Zitat
QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#4

AW: Outlook via Ole: E-Mail-Fenster im Vordergrund anzeigen

  Alt 21. Dez 2015, 15:32
Kann mir niemand bei diesem Problem helfen?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf