Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfung, ob Outlook schon einmal gestartet wurde

Prüfung, ob Outlook schon einmal gestartet wurde
dave
Hallo zusammen,
Ich habe einen Code, bei dem unter anderem eine Mail aus Excel generiert wird.
Durch wechselnde Anmeldungen auf verschiedenen Rechnern kann es nun sein, dass der angemeldete Benutzer noch nie Outlook gestartet hat und somit beim ersten Aufruf theoretisch die "Ersteinrichtung" kommen würde. Dies hat letztens wohl zu einem Abbruch des Codes geführt (leider war ich nicht dabei, so dass ich nicht genau weiß, in welcher Form).
Lässt es sich irgendwie einfach (!) prüfen, ob Outlook normal funktioniert? Ich vermute mal, eher nicht.
Die einfachere Lösung ist vermutlich, vor dem Generieren der Mail noch einmal eine Sicherheitsabfrage zu setzen - oder seht ihr da einen anderen Weg?
Gruß
David

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prüfung, ob Outlook schon einmal gestartet wurde
24.02.2012 22:25:04
Patrick
hier ein Code mit die

Function IsOutlookOpen als Lösungvorschlag:
Option Explicit
Declare 

Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
Declare 

Function GetDesktopWindow Lib "user32" () As Long
Declare 

Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) _
As Long

Sub TestMe()
MsgBox IsOutlookOpen
MsgBox IsOutlookAppAvailable
End Sub
Function IsOutlookAppAvailable() As Boolean
Dim myOlApp As Object
'On erro GoTo Recover
Set myOlApp = CreateObject("Outlook.Application")
IsOutlookAppAvailable = True
Exit Function
Recover:
IsOutlookAppAvailable = False
End Function
Function IsOutlookOpen() As Boolean
Dim i As Integer
Dim sWindowText As String
Dim sClassname As String
Dim sID As Long, hwnd As Long
Dim r As Long
Const GWL_ID = (-12)
Const GW_HWNDNEXT = 2
Const GW_CHILD = 5
sID = GetDesktopWindow()
i = 0
Do
If i = 1 Then
hwnd = GetWindow(sID, GW_CHILD)
Else
hwnd = GetWindow(hwnd, GW_HWNDNEXT)
End If
If hwnd = 0 And i > 10 Then Exit Do
sWindowText = Space(255)
r = GetWindowText(hwnd, sWindowText, 255)
sWindowText = Left(sWindowText, r)
If InStr(sWindowText, "Outlook") > 0 Then
IsOutlookOpen = True
Exit Function
End If
If i > 5000 Then Stop
DoEvents
i = i + 1
Loop
IsOutlookOpen = False
End Function

Anzeige
AW: Prüfung, ob Outlook schon einmal gestartet wurde
27.02.2012 11:15:54
dave
Hallo Patrick,
für die Zwecke, in der meine Datei mit dem Code eingesetzt wird, ist das wohl eher zu kompliziert. Ich muss leider immer daran denken, dass alle Makros auch von anderen benutzt werden und eventuelle gewartet und angepasst werden müssen und da ist das vorhandene Knowhow nicht ausreichend.
Ich werde das aber auf jeden Fall mal testen und evtl. "experimentell" einbauen.
Vielen Dank für deine Mühe.
Gruß
David

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige