Outlook Senden und Empfangen

  • Hallo,

    ich Suche nach einer möglichkeit in Outlook Emails Senden und Empfangen zu können und darauf zu warten bis das Programm damit fertig ist.
    Ich habe es schon durch senden des Hotkey "F9" versucht. Das geht auch soweit nur ich weiß nciht wie ich rausbekommen soll wann das programm damit fertig ist.
    mit

    [autoit]

    StatusbarGetText

    [/autoit]

    Gehts leider auch nicht. Und Pixelsearch und diese "geschichten" wollt ich dafür eigentlich nciht verwenden.

    Hat jemand eine idee?

    Danke schonmal

  • Du könntest die DeliverNow Methode verwenden.
    Beispielcode (VBA) gibt's hier.

  • Danke für den Tipp water.
    damit gehts bestimmt.
    Habe aber nochmal ein wenig nachgegrübelt und eine wesentlich einfachere Möglichkeit gefunden.
    Jetzt funktioniert alles so wie es soll.

    Zu meiner jetzigen Lösung (Falls es noch jemanden interessiert^^)

    Ich starte Outlook einfach mit Autoit und Beende es dann wieder.
    Outlook habe ich so Konfiguriert das er beim Beenden die Notwendigen Konten noch syncroniesiert.

    Minianleitung dazu

    Spoiler anzeigen


    Wärend mein Rechner die "Outlook Geschichte" abarbeitet wartet Autoit einfach so lange bis Outlook beendet wurde.

    hier noch mein Code-Schnipsel dazu

    Spoiler anzeigen

    ;)

    [autoit]


    ShellExecute("Outlook", "", "", "", @SW_MAXIMIZE)
    WinWaitActive("Posteingang - Microsoft Outlook")
    While Sleep(500)
    If ProcessExists("OUTLOOK.exe") Then
    WinClose("Posteingang - Microsoft Outlook")
    WinWaitClose("Posteingang - Microsoft Outlook")
    ExitLoop
    EndIf
    WEnd

    [/autoit]

    EDIT:

    Hab ich doch glatt was vergessen.
    Sollte diese Prozedur euer Outlook zu schnell beendet hilft dies hier:

    [autoit]

    Opt("WinWaitDelay", 5000)

    [/autoit]
  • Nur zur Info:
    Ab Outlook 2007 funktioniert folgende Funktion (wird in der nächsten Version des OutlookEX UDFs enthalten sein):

    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _OL_ItemSendReceive
    ; Description ...: Initiates immediate delivery of all undelivered messages and immediate receipt of mail for all accounts in the current profile.
    ; Syntax.........: _OL_ItemSendReceive($oOL[, $bOL_ShowProgress = False])
    ; Parameters ....: $oOL - Outlook object returned by a preceding call to _OL_Open()
    ; $bOL_ShowProgress - Optional: If True show the Outlook Send/Receive progress dialog box (default = False)
    ; Return values .: Success - 1
    ; Failure - Returns 0 and sets @error:
    ; |1 - Error executing the SendAndReceive method. For details check @extended
    ; Author ........: water
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _OL_ItemSendReceive($oOL, $bOL_ShowProgress = False)

    [/autoit][autoit][/autoit][autoit]

    Local $oOL_Namespace = $oOL.GetNamespace("MAPI")
    $oOL_Namespace.SendAndReceive($bOL_ShowProgress)
    If @error <> 0 Then Return SetError(1, @error, 0)
    Return 1

    [/autoit][autoit][/autoit][autoit]

    EndFunc ;==>_OL_ItemSendReceive

    [/autoit]