Blockierte Dateianhänge in Outlook freischalten

  • Hallo Leutz,
    das passiert wenn man mal nachts nicht schlafen kann :rolleyes: . Man setzt sich an den PC und programiert noch ein wenig herrum. Es hat aber geholfen müde zu werden :rofl:

    zum script:
    Wie sicherlich vielen schon bekannt, sperrt Outlook ab der version 2000 diverse Dateianhänge, ob nun sinnvoll oder nicht, hin und wieder kann das sehr störend sein. Hier mein script hierzu.

    Bitte beachtet es wird ein Wert in der Registry gesetzt Der dieses bewerkstelligt. Im Grunde auch keine große Sache.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>

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

    Global $blockedfiltypes[86][2] = [[".ADE", "Access-Projekterweiterung (Microsoft)"], _
    [".ADP", "Access-Projekt (Microsoft)"], _
    [".ADP", "Access-Projekt (Microsoft)"], _
    [".APP", "Ausführbare Anwendung"], _
    [".ASP", "Active Server Pages"], _
    [".BAS", "BASIC-Quellcode"], _
    [".BAT", "Stapelverarbeitung"], _
    [".CER", "Internetsicherheit-Zertifikatsdatei"], _
    [".CHM", "Kompilierte HTML-Hilfe"], _
    [".CMD", "DOS CP/M-Befehlsdatei, Befehlsdatei für Windows NT"], _
    [".COM", "Befehl"], _
    [".CPL", "Windows-Systemsteuerungsoption (Microsoft)"], _
    [".CRT", "Zertifikatsdatei"], _
    [".CSH", "CSH-Skript"], _
    [".DER", "DER-codierte X509-Zertifikatsdatei"], _
    [".EXE", "Ausführbare Datei"], _
    [".FXP", "Kompilierte FoxPro-Quelle (Microsoft)"], _
    [".gadget", "Windows Vista-Gadget"], _
    [".HLP", "Windows-Hilfedatei"], _
    [".HTA", "Hypertextanwendung"], _
    [".INF", "Informations- oder Setupdatei"], _
    [".INS", "IIS-Internetkommunikationseinstellungen (Microsoft)"], _
    [".ISP", "IIS Internetdienstanbieter-Einstellungen (Microsoft)"], _
    [".ITS", "Internetdokumentgruppe (Internet Document Set), Internet Translation"], _
    [".JS", "JavaScript-Quellcode"], _
    [".JSE", "Verschlüsselte JScript-Skriptdatei"], _
    [".KSH", "UNIX-Shellskript"], _
    [".INK", "Windows-Verknüpfungsdatei"], _
    [".MAD", "Access-Modulverknüpfung (Microsoft)"], _
    [".MAF", "Access (Microsoft)"], _
    [".MAG", "Access-Diagrammverknüpfung (Microsoft)"], _
    [".MAM", "Access-Makroverknüpfung (Microsoft)"], _
    [".MAQ", "Access-Abfrageverknüpfung (Microsoft)"], _
    [".MAR", "Access-Berichtsverknüpfung (Microsoft)"], _
    [".MAS", "Gespeicherte Access-Prozeduren (Microsoft)"], _
    [".MAT", "Access-Tabellenverknüpfung (Microsoft)"], _
    [".MAU", "Media Attachment Unit"], _
    [".MAV", "Access-Sichtverknüpfung (Microsoft)"], _
    [".MAV", "Access-Datenzugriffsseite (Microsoft)"], _
    [".MDA", "Access Add-In (Microsoft), MDA Access 2 Workgroup (Microsoft)"], _
    [".MDB", "Access-Anwendung (Microsoft), MDB Access-Datenbank (Microsoft)"], _
    [".MDE", "Access MDE-Datenbankdatei (Microsoft)"], _
    [".MDT", "Access-Add-In-Daten (Microsoft)"], _
    [".MDW", "Access-Arbeitsgruppeninformationen (Microsoft)"], _
    [".MDZ", "Access-Datenbank-Assistent (Microsoft)"], _
    [".MSC", "Steuerdatei (Microsoft) für das Microsoft Management Console-Snap-In"], _
    [".MSH", "Microsoft Shell"], _
    [".MSH1", "Microsoft Shell"], _
    [".MSH2", "Microsoft Shell"], _
    [".MSHXML", "Microsoft Shell"], _
    [".MSH1XML", "Microsoft Shell"], _
    [".MSH2XML", "Microsoft Shell"], _
    [".MSI", "Windows Installer-Paket (Microsoft)"], _
    [".MSP", "Update für den Windows-Installationsdienst"], _
    [".MST", "Windows SDK Setup-Transformationsskript"], _
    [".OPS", "Office-Profileinstellungsdatei"], _
    [".PCD", "Visual Test (Microsoft)"], _
    [".PIF", "Windows-Programminformationsdatei (Microsoft)"], _
    [".PLG", "Developer Studio-Buildprotokoll"], _
    [".PRF", "Windows-Systemdatei"], _
    [".PRG", "Programmdatei"], _
    [".PST", "MS Exchange-Adressbuchdatei, Persönliche Ordner-Datei in Outlook (Microsoft)"], _
    [".REG", "Registrierungsinformationen/Schlüssel für Windows 95/Windows 98, Registrierungsdatendatei"], _
    [".SCF", "Windows Explorer-Befehl"], _
    [".SCR", "Windows-Bildschirmschoner"], _
    [".SCT", "Windows-Skriptkomponente, Foxpro-Anzeige (Microsoft)"], _
    [".SHB", "Windows-Dokumentverknüpfung"], _
    [".SHS", "Shell Scrap-Objektdatei"], _
    [".ps1", "Windows PowerShell"], _
    [".ps1xml", "Windows PowerShell"], _
    [".ps2", "Windows PowerShell"], _
    [".ps2xml", "Windows PowerShell"], _
    [".psc1", "Windows PowerShell"], _
    [".psc2", "Windows PowerShell"], _
    [".TMP", "Temporäre Datei/temporärer Ordner"], _
    [".URL", "Internetspeicherort"], _
    [".VB", "VBScript-Datei oder eine beliebige VisualBasic-Quelle"], _
    [".VBE", "Verschlüsselte VBScript-Datei"], _
    [".VBS", "VBScript-Skriptdatei, VBA-Skript"], _
    [".VSMACROS", "Binärbasiertes Visual Studio .NET-Makroprojekt (Microsoft)"], _
    [".VSW", "Visio-Arbeitsbereichsdatei (Microsoft)"], _
    [".WS", "Windows-Skriptdatei"], _
    [".WSC", "Windows Script-Komponente"], _
    [".WSF", "Windows-Skriptdatei"], _
    [".WSH", "Windows Script Host-Einstellungsdatei"], _
    [".xnk", "Verknüpfung zu Öffentlichem Ordner in Exchange"]]
    Global $key = 'HKEY_CURRENT_USER\Software\Microsoft\Office\'
    Global $version = outlookVersion()
    Global $keyend = ".0\Outlook\Security"
    Global $val = "Level1Remove"
    Global $hListView, $knownfiltypes

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

    Switch $version
    Case 0
    MsgBox(-1, "", "Kein Outlook installiert")
    Exit
    Case 9
    Global $vernum = "9" ;2000
    Case 10
    Global $vernum = "10" ;2002
    Case 11
    Global $vernum = "11" ;2003
    Case 12
    Global $vernum = "12" ;2007
    Case 14
    Global $vernum = "14" ;2010
    EndSwitch

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

    menu()

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

    Func menu()
    Local $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES)
    GUICreate("Outlook Dateianhänge Freischalten", 800, 600)
    GUICtrlCreateLabel("Alle in dieser Liste befindlichen Dateitypen werden von Microsoft Outlook als Anhang blockiert.", 10, 10, 790, 20)
    GUICtrlCreateLabel("Selektierte Dateitypen werden nach Ausführung nicht mehr blokiert, oder sind schon als solche deklariert worden.", 10, 30, 790, 20)
    $ok = GUICtrlCreateButton("OK", 700, 450, 70, 40)
    $cancel = GUICtrlCreateButton("abbrechen", 700, 500, 70, 40)
    $markall = GUICtrlCreateButton("alle", 700, 50, 70, 40)
    $unmarkall = GUICtrlCreateButton("keine", 700, 100, 70, 40)
    $checkreg = GUICtrlCreateButton("Aktuell", 700, 150, 70, 40)
    $hListView = GUICtrlCreateListView("", 10, 50, 665, 500)
    _GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)
    _GUICtrlListView_AddColumn($hListView, "Dateityp", 90, 0)
    _GUICtrlListView_AddColumn($hListView, "Beschreibung", 550, 0)
    _GUICtrlListView_AddArray($hListView, $blockedfiltypes)
    _checkreg()
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $ok
    _doit()
    $progende = MsgBox(4, "", "Werte gesetzt Soll das Programm beendet werden ?")
    If $progende = 6 Then Exit
    Case $markall
    _checkall(True)
    Case $unmarkall
    _checkall(False)
    Case $checkreg
    _checkall(False)
    _checkreg()
    Case $GUI_EVENT_CLOSE, $cancel
    Exit
    EndSwitch
    WEnd
    EndFunc ;==>menu

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

    Func _checkreg()
    Local $allowedfiletypes
    $allowedfiletypes = RegRead($key & $vernum & $keyend, $val)
    $knownfiltypes = StringSplit($allowedfiletypes, ";")
    Local $x, $wert1
    For $i = 1 To $knownfiltypes[0]
    $wert1 = $knownfiltypes[$i]
    For $x = 0 To UBound($blockedfiltypes - 1)
    $wert2 = _GUICtrlListView_GetItemText($hListView, $x)
    If $wert1 = $wert2 Then _GUICtrlListView_SetItemChecked($hListView, $x)
    Next
    Next
    EndFunc ;==>_checkreg

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

    Func _checkall($onoff)
    For $i = 0 To UBound($blockedfiltypes - 1)
    _GUICtrlListView_SetItemChecked($hListView, $i, $onoff)
    Next
    EndFunc ;==>_checkall

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

    Func outlookVersion()
    Local $objoutlook = ObjCreate("outlook.Application")
    If Not IsObj($objoutlook) Then Return 0
    $objoutlook.Quit
    Return $objoutlook.Version
    EndFunc ;==>outlookVersion

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

    Func _doit()
    Local $newreg = ""
    For $x = 0 To UBound($blockedfiltypes - 1)
    If _GUICtrlListView_GetItemChecked($hListView, $x) Then
    $newreg &= _GUICtrlListView_GetItemText($hListView, $x) & ";"
    EndIf
    Next
    $newreg = StringTrimRight($newreg, 1)
    RegWrite($key & $vernum & $keyend, $val, "REG_SZ", $newreg)
    EndFunc ;==>_doit

    [/autoit]