Windows Mail in Tray minimizer

  • Ist das Script für euch nützlich? 7

    1. Nein, ich benutze kein Windows Mail (4) 57%
    2. Ja, kann ich gebrauchen (2) 29%
    3. Nein, ich benutze immer noch Xp und hab kein Vista (1) 14%

    Hallo,

    ich wollte gerade Windows Mail unter Vista einrichten und dabei ist mir aufgefallen, dass man das Programm nicht in den Tray minimieren kann. Also hab ich mir die Mühe gemacht, ein kleines Script zu schreiben, das Windows Mail beim minimieren unsichtbar macht und nur einen Symbol im Traybereich anzeigt. Unter Vista funktioniert das Script. Gibt es unter Windows 7 auch Windows Mail?

    Im Anhang ist das Script als Code und kompiliert vorzufinden.


    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.0
    Author: Burak Keskin

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)

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

    #include <Constants.au3>

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

    Local Const $ScriptOrdner = @ScriptDir
    Local Const $ProgrammOrdner = @ProgramFilesDir
    Local Const $WindowsMailPath = $ProgrammOrdner & "\Windows Mail\WinMail.exe"
    _StarteWinMail()
    Local Const $FensterHandle = WinGetHandle("[CLASS:Outlook Express Browser Class]")
    Local Const $Delay = 200 ;Aktualisierungszeit in ms.

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

    If Not ProcessExists("WinMail.exe") Then
    MsgBox(16, "Fehler", "Sie müssen zuerst Windows Mail starten.")
    Exit
    EndIf

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

    TraySetIcon($WindowsMailPath, -1)
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE , "_ZeigeWindowsMailFenster")

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

    If WinGetState($FensterHandle) <> 23 Then
    TraySetState(2)
    Else
    TraySetState(1)
    EndIf

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

    AdlibRegister("_VersteckeWindowsMail", $Delay)

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

    ;Nichts ^^
    While 1
    Sleep(50)
    WEnd

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

    ;Versteckt das Fenster, wenn es minimiert wurde.
    Func _VersteckeWindowsMail()
    Switch WinGetState($FensterHandle)
    Case 23 ;Minimiert
    TraySetState(1)
    WinSetState($FensterHandle,"", @SW_HIDE)
    EndSwitch
    If Not ProcessExists("WinMail.exe") Then Exit
    EndFunc

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

    ;Stellt das Fenster wieder her.
    Func _ZeigeWindowsMailFenster()
    Switch WinGetState($FensterHandle)
    Case 7, 21, 39
    TraySetState(2)
    WinActivate($FensterHandle)
    WinSetState($FensterHandle, "", @SW_RESTORE)
    EndSwitch
    EndFunc

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

    ;Startet Windows Mail.
    Func _StarteWinMail()
    If ProcessExists("WinMail.exe") Then Return 0
    Run($WindowsMailPath)
    WinWait("Posteingang - Windows Mail", "Symbolleiste")
    WinSetState("Posteingang - Windows Mail", "Symbolleiste", @SW_MINIMIZE)
    EndFunc

    [/autoit]