Outlook & OExpress Saver...

  • ...sprich „OES“ dient zur Sicherung der E-Mail Daten von Outlook & OExpress. Es ist sehr klein und schnell gestaltet. Mit dem Programm, jetzt mit Benutzeroberfläche (GUI) und im "GUIOnEventMode", kann der Nutzer Speicherort sowie Speicherformat (Copy, Zip, 7zip) selbst frei wählen. Die plakativen Funktionen der 3er Version sind beseitigt und mit Phase 4 wird ein neuer Abschnitt eingeleitet. Nun mehr, steht der Fokus auf Rücksicherung. Die Sprachausgabe wurde verbessert. Zu Gunsten von Ressourcen und Performance habe ich auf „FileInstall“ verzichtet. Diese Aufgabe hat jetzt die Setuproutine übernommen und richtet einen Unterordner „OESsys“ ein. In diesem Unterordner werden 7zip sowie das Wave-File hinterlegt.
    Eine Statusleiste ist hinzu gekommen.
    Die Schalter Start, Beenden, Info und About können über die neue Menüleiste erreicht werden.
    Das Adressbuch kann nun auch gesichert und rück gesichert werden.
    Anpassungen wurden vorgenommen.
    Startbutton, Tooltip und Menü/Datei - Bezeichnung wechselt jeweils von "Sichern nach Restore". Der Zielpfad wird gespeichert.
    Multilingual - Hier kann man schnell auch selbst eine fehlende Sprache erstellen und einfügen.

    Einige Anpassungen wurden vorgenommen.
    Für mehr Performance und um Ressourcen zu schonen, wurde auf Fileinstall verzichtet. Alle nötigen Komponenten wurden zur ordnungsgemäßen Platzierung der Installationsroutine übergeben. Hier werden Ordner und Unterordner erstellt, sowie befüllt. Die OES.ini-Datei wurde bewusst installiert um auch eine rückstandslose Deinstallation gewährleisten zu können. Bei einem Wechsel der Sprache, wird der Blick auf den Neustart der Oberflächen geschickt durch das Auswahlfenster abgedeckt. So wird der Wechsel mehr als ein schließen des Auswahlfensters wahrgenommen. Die drei Sprachen des Hauptscripts, kann auch das Installationsscript vorweisen. Dem Nutzer bleibt auch künftig die Möglichkeit, eine andere Sprache seiner Wahl zu erstellen. OES ist in der Lage die Neue Sprache zu erkennen und wird sie von nun an zur Auswahl anbieten. Eine mitgelieferte Liesmich.txt-Datei kommt mehrfach zum Einsatz, wenn es um Hinweise oder Infos für den Nutzer geht.

    Gleich zwei Funktionen, eine Benutzeroberfläche und eine Programmbibliothek nehmen ihren Dienst auf.

    Mit Überprüfung und Nutzung eines vorhandenen 7zip geht es weiter.
    Eine kleine HTML-Info soll das Ganze abrunden.

    Das 7zip aktualisiert.
    Pfade wurden angepasst.
    Die blaue Farbe der Ctrl abgestimmt (immer das gleiche Blau - Stilwechsel).
    Die DLL von 620kb zu 33kb, bei gleicher Funktionalität.

    OES wurde mit Windows XP, Outlook2, Outlook Express und XP-Address Book getestet.

    Sicherheitsabfragen und viele Kommentare wurden eingefügt (i=Info, !=Wichtig).

    Speziellen Dank an:
    - Alina für ihre umgangssprachliche Übersetzung ins Dänische.
    - Oscar für die fachliche Unterstützung

    Danke für die bisherigen über 245 Downloads.

    Viel Spaß mit OES ! :rolleyes:

    Script
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=OES.ico
    #AutoIt3Wrapper_Outfile=OESv5100.exe
    #AutoIt3Wrapper_Res_Description=Outlook & OExpress Saver
    #AutoIt3Wrapper_Res_Fileversion=5.1.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=(C) 2009 by Ritzelrocker04
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
    #AutoIt3Wrapper_Res_Field=Compiled by|Ritzelrocker04
    #AutoIt3Wrapper_Res_Field=Original Name|Outlook & OExpress Saver
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/striponly
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    ; Thx to Crazy-A, Peethebee, Xenobiologist, BugFix, Progandy & Oscar

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

    #Region ### Include Section ###
    #include <AVIConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #EndRegion ### Include Section ###

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

    #Region ### Optionen Section ###
    Opt('GUIOnEventMode', 1) ;i 1 Schaltet den OnEvent-Mode ein
    Opt('MustDeclareVars', 1) ;i Variablen müssen vor der Benutzung deklariert werden
    Opt('TrayAutoPause', 0) ;i das Script nicht pausieren, wenn auf das Tray-Icon geklickt wird
    Opt('GUICloseOnESC', 0) ;i das drücken der ESC-Taste führt nicht zum beenden des Programms
    #EndRegion ### Optionen Section ###

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

    #Region ### Variablen Section ###
    ;i directories & files
    Global $identPath = _
    RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Local AppData")
    Global $ident = RegRead("HKEY_CURRENT_USER\Identities", "Default User ID") ;i Identities read
    Global $ini = @ScriptDir & "\OESsys\oes.ini" ;i Path & Name Inifile
    Global $OESmedia = @ScriptDir & "\OESsys\oes_rc.dll" ;! Path & Name zur Ressource-DLL - erstellt mit AutoIT-Bordmitteln ;)
    Global $info = @ScriptDir & '\OESsys\OES_Info.chm'
    Global $ndDing = @WindowsDir & "\Media\ding.wav" ;i M$sound
    Global $languages, $actual_lang, $actual_lang_name, $new_lang
    Global $lang_dir = @ScriptDir & "\lang"

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

    Global $7zip
    Global $version = "5.1.00"
    Global $title = "Outlook & Outlook Express Saver"
    ;i array
    Global $aFormat[3] = ['Copy', 'Zip', '7zip'], $aFormatGB[3]
    Global $aDateien[3] = ['Microsoft Outlook', 'Outlook Express', 'Address Book'], $aDateienGB[3]
    Global $ziel, $ident, $dest, $src

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

    ;! Guicontrols vor der Func _ini_read_lang()
    Global $GUI, $fileMenu, $startItem, $exitItem, $OptMenu, $langItem, $helpMenu, $helpItem, $aboutItem, _
    $gbSources, $tbDest, $bnDest, $lbLocation, $gbFormat, $ckbRest, $bnStart, $bnCancel, $tatusLine

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

    _ini_read_lang()
    #EndRegion ### Variablen Section ###

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

    #Region ### Check Section ###
    ;i ist 7zip auf dem PC schon installiert ?
    If FileExists(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip", "Path") & "\7z.exe") Then
    ;i dann verwende das installierte 7zip !
    $7zip = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip", "Path") & "\7z.exe"
    Else
    ;i ist kein 7zip installiert, verwende dieses 7zip.
    $7zip = @ScriptDir & "\OESsys\7za.exe"
    If Not FileExists($7zip) Then Exit MsgBox(262144 + 16, 'Error ' & $title, $7zip & @CRLF & @CRLF & 'File Not Found ! ')
    ;! Beenden & Nachricht an User, wenn 7zip nicht existiert
    EndIf
    #EndRegion ### Check Section ###

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

    #Region ### START OES GUI section ###
    $GUI = GUICreate($title, 350, 200)
    WinSetOnTop($title, '', 1) ;i 1 = den Wert für "Immer im Vordergrund" setzen
    GUISetOnEvent($GUI_EVENT_CLOSE, '_quit')

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

    ;i Menüleiste - Datei
    $fileMenu = GUICtrlCreateMenu($languages[1][1])
    $startItem = GUICtrlCreateMenuItem($languages[2][1], $fileMenu)
    GUICtrlSetOnEvent(-1, '_start')
    GUICtrlCreateMenuItem("", $fileMenu, -1)
    $exitItem = GUICtrlCreateMenuItem($languages[3][1], $fileMenu)
    GUICtrlSetOnEvent(-1, '_quit')

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

    ;i Menüleiste - Optionen
    $OptMenu = GUICtrlCreateMenu($languages[4][1])
    $langItem = GUICtrlCreateMenuItem($languages[5][1], $OptMenu)
    GUICtrlSetOnEvent(-1, '_lang')

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

    ;i Menüleiste - Hilfe
    $helpMenu = GUICtrlCreateMenu("?")
    $helpItem = GUICtrlCreateMenuItem($languages[6][1], $helpMenu)
    GUICtrlSetOnEvent(-1, '_info')
    $aboutItem = GUICtrlCreateMenuItem($languages[7][1], $helpMenu)
    GUICtrlSetOnEvent(-1, '_about')

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

    #Region Group Quelle
    $gbSources = GUICtrlCreateGroup($languages[8][1], 5, 2, 340, 38) ;i create group Quelle
    GUICtrlSetColor(-1, 0x0046D5) ; blau
    For $i = 0 To 2
    $aDateienGB[$i] = GUICtrlCreateRadio($aDateien[$i], 20 + $i * 110, 17, 102, 17) ;i erstellt 3 Optionsfelder (Radio button)
    GUICtrlSetState($aDateienGB[1], $GUI_CHECKED)
    GUICtrlSetTip(-1, $languages[14][1])
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1) ;i close group Quelle
    #EndRegion Group Quelle

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

    $tbDest = GUICtrlCreateInput(IniRead($ini, "Destination", "Path", "C:\$Backup$"), 90, 61, 255, 17, $ES_READONLY)
    ;! $ES_READONLY - Eingaben nur über $bnDest möglich
    GUICtrlSetBkColor(-1, 0xFFFFFF) ;i weiss
    $bnDest = GUICtrlCreateButton("...", 5, 61, 75, 17, 0)
    GUICtrlSetOnEvent(-1, '_dest')
    GUICtrlSetTip(-1, $languages[16][1])
    $lbLocation = GUICtrlCreateLabel($languages[9][1], 13, 44, 70, 17)
    GUICtrlSetColor(-1, 0x0046D5) ; blau

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

    #Region Group Format
    $gbFormat = GUICtrlCreateGroup($languages[10][1], 5, 87, 340, 38) ;i create group $gbFormat
    GUICtrlSetColor(-1, 0x0046D5) ; blau
    For $i = 0 To 2
    $aFormatGB[$i] = GUICtrlCreateRadio($aFormat[$i], 52 + $i * 100, 102, 45, 17) ;i erstellt 3 Optionsfelder (Radio button)
    GUICtrlSetState($aFormatGB[1], $GUI_CHECKED)
    GUICtrlSetTip(-1, $languages[18][1])
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1) ;i close group $gbFormat
    #EndRegion Group Format

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

    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
    $ckbRest = GUICtrlCreateCheckbox("Restore", 10, 132, 60, 17)
    GUICtrlSetTip(-1, $languages[20][1])
    GUICtrlSetOnEvent(-1, '_restore')
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 7)
    $bnStart = GUICtrlCreateButton($languages[11][1], 185, 134, 75, 22, $BS_DEFPUSHBUTTON) ;i DEF PUSH
    GUICtrlSetOnEvent(-1, '_start')
    GUICtrlSetTip(-1, $languages[21][1])
    $bnCancel = GUICtrlCreateButton($languages[12][1], 265, 134, 75, 22, 0)
    GUICtrlSetOnEvent(-1, '_quit')
    GUICtrlSetTip(-1, $languages[22][1])
    GUICtrlCreateLabel("RR04 for AutoIT.de", 5, 150, 100, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)
    $tatusLine = GUICtrlCreateLabel("", 0, 164, 350, 17, BitOR($SS_SUNKEN, $SS_CENTER))
    GUICtrlSetData($tatusLine, 'Version ' & $version & @TAB & @MDAY & ' - ' & @MON & ' - ' & @YEAR)

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

    GUISetState(@SW_SHOW, $GUI)
    #EndRegion ### START OES GUI section ###

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

    #Region ### Language GUI section ###
    Global $aFlag[3] = ['151', '150', '152'], $aFlagAvi[3]

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

    Global $langGUI = GUICreate($title, 330, 250, -1, -1, $WS_SYSMENU, -1, $GUI)
    GUISetBkColor(0xFFFFFF);i Hintergrundfarbe des Fensters
    WinSetOnTop($title, '', 1) ;i den Wert für "Immer im Vordergrund" setzen
    GUISetOnEvent($GUI_EVENT_CLOSE, '_closeLang')
    GUICtrlCreateGroup("", 5, 0, 315, 185) ;i create group

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

    For $m = 0 To 2
    $aFlagAvi[$m] = GUICtrlCreateAvi($OESmedia, $aFlag[$m], 25 + $m * 100, 40, 70, 50, $ACS_AUTOPLAY) ;i erstellt 3 AVI´s
    Next

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

    GUICtrlCreateLabel("Please choose your language:", 10, 120, 305, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0x0046D5) ;i blau
    Global $gui_combo_lang = GUICtrlCreateCombo("", 65, 140, 200, 17)
    _read_lang()

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

    GUICtrlCreateGroup("", -99, -99, 1, 1) ;i close group
    GUICtrlCreateButton("OK", 124, 190, 76, 22, $BS_DEFPUSHBUTTON) ;i DEF PUSH
    GUICtrlSetOnEvent(-1, '_closeLang')
    #EndRegion ### Language GUI section ###

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

    #Region ### AboutGUI section ###
    Global $aAbout[7] = ['Product Name :', 'Outlook and Outlook Express Saver', 'Version : ', _
    $version & @TAB & 'Build 2008 - 09 - 11', 'Copyright (C) 2008 by Ritzelrocker04', 'Thx an das http://www.AutoIT.de - Team', _
    'Special thanks to Crazy-A and Oscar'], $aAboutLB[7]

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

    Global $aboutGUI = GUICreate($title, 330, 250, -1, -1, $WS_SYSMENU, -1, $GUI)
    WinSetOnTop($title, '', 1) ;i den Wert für "Immer im Vordergrund" setzen
    GUISetOnEvent($GUI_EVENT_CLOSE, '_closeAbout')
    GUICtrlCreateGroup("", 5, 0, 315, 185) ;i create group
    GUICtrlCreateAvi($OESmedia, 160, 25, 40, 40, 44, $ACS_AUTOPLAY)
    GUICtrlCreateIcon($OESmedia, -1, 28, 120, 32, 32)
    For $i = 0 To 6
    $aAboutLB[$i] = GUICtrlCreateLabel($aAbout[$i], 100, 16 + $i * 24, 200, 17) ;i erstellt 7 Label
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1) ;i close group
    GUICtrlCreateButton("OK", 124, 190, 76, 22, $BS_DEFPUSHBUTTON) ;i DEF PUSH
    GUICtrlSetOnEvent(-1, '_closeAbout')
    #EndRegion ### AboutGUI section ###

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

    #Region ### AniGUI section ###
    Global $aniGUI = GUICreate($title, 300, 100, -1, -1, $WS_SYSMENU, -1, $GUI)
    Global $Avi = GUICtrlCreateAvi("shell32.dll", 167, 14, 10) ;i soll die XP-Animation abspielen
    GUICtrlSetState($Avi, 1)
    #EndRegion ### AniGUI section ###

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

    While 1
    Sleep(900)
    WEnd

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

    Func _start()
    $ziel = GUICtrlRead($tbDest) ;i auslesen der Nutzereingaben
    IniWrite($ini, 'Destination', 'Path', $ziel) ;i ini write the $ziel

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

    For $i = 0 To 2
    If BitAND(GUICtrlRead($aDateienGB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
    Switch $i
    Case 0
    ;i Outlook
    ;original $src = @UserProfileDir & '\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\'
    $src = @AppDataDir & '\Microsoft\Outlook\'
    ;! Quelle für FileExists, DirCopy, 7zip & Identities einfügen
    If Not FileExists($src) Then Exit MsgBox(262144 + 16, 'Error ' & $title, $src & @CRLF & @CRLF & "File Not Found ! ")
    ;! Beenden & Nachricht an User, wenn bezeichnete Datei oder Verzeichnis nicht existiert
    $dest = $ziel & "\$Outlook$\Outlook" ;i Destination

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

    Case 1
    ;i Outlook Express
    ;original $ident = RegRead("HKEY_CURRENT_USER\Identities", "Default User ID") ;i die Identities auslesen
    ;original $src = @UserProfileDir & '\Lokale Einstellungen\Anwendungsdaten\Identities\' & $ident & '\Microsoft\Outlook Express\'
    $src = $identPath & '\Identities\' & $ident & '\Microsoft\Outlook Express\'
    ;! Quelle für FileExists, DirCopy, 7zip & Identities einfügen
    If Not FileExists($src) Then Exit MsgBox(262144 + 16, 'Error ' & $title, $src & @CRLF & @CRLF & "File Not Found ! ")
    ;! Beenden & Nachricht an User, wenn bezeichnete Datei oder Verzeichnis nicht existiert
    $dest = $ziel & "\$OutlookExpress$\OutlookExpress" ;i Destination

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

    Case 2
    ;i Address Book
    ;original $src = @UserProfileDir & '\Anwendungsdaten\Microsoft\Address Book\'
    $src = @AppDataDir & '\Microsoft\Address Book\'
    ;! Quelle für FileExists, DirCopy, 7zip & Identities einfügen
    If Not FileExists($src) Then Exit MsgBox(262144 + 16, 'Error ' & $title, $src & @CRLF & @CRLF & "File Not Found ! ")
    ;! Beenden & Nachricht an User, wenn bezeichnete Datei oder Verzeichnis nicht existiert
    $dest = $ziel & "\$AddressBook$\AddressBook" ;i Destination
    EndSwitch
    EndIf
    Next

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

    For $j = 0 To 2
    If BitAND(GUICtrlRead($aFormatGB[$j]), $GUI_CHECKED) = $GUI_CHECKED Then ;i Radiobutton prüfen ; wenn ein, dann...
    Switch $j
    Case 0
    If BitAND(GUICtrlRead($ckbRest), $GUI_CHECKED) = $GUI_CHECKED Then
    _recopy()
    Else
    If FileExists($dest) Then ;! prüfen, ob bezeichnete Datei oder Verzeichnis existiert
    FileDelete($dest) ;! löscht eine bezeichnete oder mehr Dateien
    EndIf
    _copy()
    EndIf

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

    Case 1
    $dest &= '.zip ' ;i Packformat "*.zip"

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

    If BitAND(GUICtrlRead($ckbRest), $GUI_CHECKED) = $GUI_CHECKED Then
    _unzip()
    Else
    $7zip &= " a -tzip " ;i Packformat "*.zip"
    _zip()
    EndIf

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

    Case 2
    $dest &= '.7z ' ;i Packformat "*.7z"

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

    If BitAND(GUICtrlRead($ckbRest), $GUI_CHECKED) = $GUI_CHECKED Then
    _unzip()
    Else
    $7zip &= " a -t7z " ;i Packformat "*.7z"
    _zip()
    EndIf
    EndSwitch
    EndIf
    Next

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

    ;SoundSetWaveVolume(50) ;i Lautstärke 50% optional
    SoundPlay($ndDing, 1) ;i M$Sound abspielen
    MsgBox(262144 + 64, $title, $languages[27][1] & @CRLF & @CRLF & @MDAY & "-" & @MON & "-" & @YEAR & " - " & @HOUR & ":" & @MIN & " " & $languages[28][1])
    ;! Erfolgsmeldung ausgeben
    _quit() ;i Programm autom. beenden
    EndFunc ;==>_start

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

    Func _quit()
    Exit
    EndFunc ;==>_quit

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

    Func _dest()
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)

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

    Local $path = FileSelectFolder($languages[26][1], "::{00000000-1080-F9E5-6311-4162E05A6BEE}", 1)
    If Not @error Then
    GUICtrlSetData($tbDest, $path)
    EndIf
    EndFunc ;==>_dest

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

    Func _copy()
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)
    GUISetState(@SW_SHOW, $aniGUI) ;i aniGUI anzeigen
    FileCopy($src, $dest & "\*.*", 1 + 8)
    ;i ausführen der eigentlichen Sicherung
    GUISetState(@SW_HIDE, $aniGUI) ;i aniGUI verstecken
    EndFunc ;==>_copy

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

    Func _recopy()
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)
    GUISetState(@SW_SHOW, $aniGUI) ;i aniGUI anzeigen
    FileCopy($dest & "\*.*", $src, 1 + 8)
    ;i ausführen der eigentlichen Rücksicherung
    GUISetState(@SW_HIDE, $aniGUI) ;i aniGUI verstecken
    EndFunc ;==>_recopy

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

    Func _zip()
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)
    GUISetState(@SW_SHOW, $aniGUI) ;i aniGUI anzeigen
    If FileExists($dest) Then ;! prüfen, ob bezeichnete Datei oder Verzeichnis existiert
    FileDelete($dest) ;! löscht eine bezeichnete oder mehr Dateien
    EndIf
    RunWait(@ComSpec & ' /c ' & $7zip & $dest & '"' & $src & '*.*"', @ScriptDir, @SW_HIDE)
    ;i Aufruf von 7z zum packen
    GUISetState(@SW_HIDE, $aniGUI) ;i aniGUI verstecken
    EndFunc ;==>_zip

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

    Func _unzip()
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)
    GUISetState(@SW_SHOW, $aniGUI) ;i aniGUI anzeigen
    RunWait(@ComSpec & ' /c ' & $7zip & ' x -aoa -o' & '"' & $src & '"' & ' ' & $dest, @ScriptDir, @SW_HIDE)
    ;i Aufruf von 7z zum entpacken
    GUISetState(@SW_HIDE, $aniGUI) ;i aniGUI verstecken
    EndFunc ;==>_unzip

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

    Func _restore()
    If BitAND(GUICtrlRead($ckbRest), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetData($startItem, "Restore")
    GUICtrlSetData($bnStart, "Restore")
    GUICtrlSetColor($ckbRest, 0xFF0000) ;i rot
    GUICtrlSetTip($ckbRest, $languages[23][1], 'Restore', 2, 3) ;i mit Icon, als Ballon-Tip, zentriert, nach unten
    MsgBox(262144 + 64, "Restore Modus", $languages[24][1] & @CRLF & $languages[25][1] & @CRLF & "" & @CRLF & 'Copyright: (C) 2009 by Ritzelrocker04 (http://www.AutoIT.de) ')
    Else
    GUICtrlSetData($startItem, $languages[2][1])
    GUICtrlSetData($bnStart, $languages[11][1])
    GUICtrlSetColor($ckbRest, 0x000000) ;i schwarz
    GUICtrlSetTip($ckbRest, $languages[20][1])
    EndIf
    EndFunc ;==>_restore

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

    Func _about()
    GUISetState(@SW_SHOW, $aboutGUI) ;i aboutGUI anzeigen
    EndFunc ;==>_about

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

    Func _closeAbout()
    GUISetState(@SW_HIDE, $aboutGUI) ;i aboutGUI verstecken
    EndFunc ;==>_closeAbout

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

    Func _info() ;by Oscar
    WinSetOnTop($title, '', 0) ;! 1 = den Wert für "Immer im Vordergrund" setzen und 0 = nicht ;)
    Local $rc
    ShellExecute($info)
    $rc = WinWait('OES_Info', '', 3)
    If $rc = 0 Then Return MsgBox(0, $title, 'Die Hilfedatei konnte nicht geöffnet werden!')
    ControlMove('OES_Info', '', '[CLASS:HH Child; INSTANCE:2]', 0, 40, 280)
    ControlMove('OES_Info', '', '[CLASS:HH Child; INSTANCE:1]', 284, 40)
    ControlTreeView('OES_Info', '', '[CLASS:SysTreeView32; INSTANCE:1]', 'Expand', '#0')
    EndFunc ;==>_info

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

    Func _lang()
    GUISetState(@SW_SHOW, $langGUI) ;i $langGUI anzeigen
    EndFunc ;==>_lang

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

    Func _closeLang()
    _gui_config()
    _ini_read_lang()
    GUISetState(@SW_HIDE, $langGUI) ;i $langGUI verstecken
    EndFunc ;==>_closeLang

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

    Func _read_lang()
    Local $aFList = '', $sFiles, $hXls = FileFindFirstFile($lang_dir & '\*.lng')

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

    While 1
    $sFiles = FileFindNextFile($hXls)
    If @error = 1 Or $sFiles = "" Then
    FileClose($hXls)
    ExitLoop
    EndIf
    If StringRight($sFiles, 4) = ".lng" Then
    $aFList = $aFList & "|" & StringTrimRight($sFiles, 4)
    EndIf
    If FileExists($actual_lang) = 1 Then
    GUICtrlSetData($gui_combo_lang, $aFList, StringTrimRight($actual_lang_name, 4))
    ElseIf FileExists($actual_lang) = 0 Then
    GUICtrlSetData($gui_combo_lang, $aFList, "Deutsch")
    EndIf
    WEnd
    EndFunc ;==>_read_lang

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

    Func _gui_config()
    $new_lang = GUICtrlRead($gui_combo_lang) & ".lng"
    If $new_lang = "" Or FileExists($lang_dir & "\" & $new_lang) = 0 Then
    $new_lang = "Deutsch.lng"
    EndIf
    IniWrite($ini, "language", "current", $new_lang)
    EndFunc ;==>_gui_config

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

    Func _ini_read_lang()
    ;read_options
    $actual_lang_name = IniRead($ini, "language", "current", "Deutsch.lng")
    $actual_lang = $lang_dir & "\" & $actual_lang_name
    ;ini_read_lang

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

    $languages = IniReadSection($actual_lang, "default_values")
    If @error Then MsgBox(4096, "", "Error occurred, probably no lng file.")

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

    Global $Label[23] = ['', $fileMenu, $startItem, $exitItem, $OptMenu, $langItem, $helpItem, $aboutItem, $gbSources, _
    $lbLocation, $gbFormat, $bnStart, $bnCancel, $aDateienGB[0], $aDateienGB[1], $aDateienGB[2], $bnDest, _
    $aFormatGB[0], $aFormatGB[1], $aFormatGB[2], $ckbRest, $bnStart, $bnCancel]

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

    For $i = 1 To 12
    GUICtrlSetData($Label[$i], $languages[$i][1])
    Next
    For $i = 13 To 22
    GUICtrlSetTip($Label[$i], $languages[$i][1])
    Next
    EndFunc ;==>_ini_read_lang

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

    ; Ende

    [/autoit]


    [align=center]Die aktuelle Version hier:

    Download OESv5.1.00_2009-04-03.zip

  • Sehr gruvi !!!! ;) Danke.
    Da mein hoher Herr nicht weiß wie man Dateien entpackt, habe ich das ganze ohne "packen gemacht.
    Aber ohne Deine Hilfe wäre das nie zustande gekommen.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo RR04.

    Ich habe es doch selber geschafft. Oder möchtest Du es so machen, das man selber auswählen kann, ob gepackt werden soll oder nicht?

    Lg und nochmals DANKE.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo RR04.

    Wieso denke ich bei Deinen Nick immer an "Riva Rotschi 120:80"? ;)
    Aber das sagt Dir evtl. eh nichts.

    Ja, das wäre eine super ID und wenn das ganze noch gut dokumentiert ist, dann wäre das sicherlich eine 1.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Naja, ich als Thunderbird-User kann mit Deinem Programm wenig anfangen, aber ich hätte da was für Deine ToDo-List:

    - 7z per FileInstall ins Programm integrieren
    - Zielauswahl über ein Auswahlfenster (FileSelectFolder)
    - eine Routine bzw. ein zusätzliches Programm zum zurückspielen der Sicherung "Outlook Express Reloader" oder so... ;)

  • Oscar

    danke für Dein Interesse und Ratschläge, fast wie abgesprochen habe ich bereits mit FileSelectFolder gearbeitet. Also 1. Auftrag erledigt :thumbup:
    Beim includen (FileInstall) war ich mir nicht sicher, bei dem doch so kl. Programm. Aber wird gemacht, soll der User wählen können!
    Thunderbird ist ein idealer Kandidat für mein "SiS", sowie auch der FireFox es sich bei "SiS" gut gehen lässt.
    Eine Rücksicherung sollte nicht fehlen, werde sie in Angriff nehmen.

    @All
    Schnell noch ein Hinweis auf die neue Version OESv2026 oben. Sie ist soweit ganz gut gelungen, die drei bewusst separat angelegten Funktionen rufen jede für sich FileExist auf. Es ist kein Mangel aber unnötig, denn einmal reicht ja auch. Somit erstelle ich eine weitere Funktion, die dieses nur einmal macht. ;)

    siehe Post 1

  • Hallo RR04.

    Super.

    Und vom Quellcode habe ich doch einiges gelernt. Da liebe ich es, wenn der Quelltext gut beschrieben ist.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo Ritzelrocker.

    Na, das ist doch schön, das Dir daran großen Spaß hast. Ich kann am Quelltext, so er eine gute Doku hat, auch viel lernen.

    Ich bin gespannt wie die nächste Release wird. Wenn Du möchtest, hier noch ein Vorschlag:

    Es gibt ja verschiedene Outlookversionen. Du kannst ja versuchen, ob Du es z. B. auch für Outlook 2002 schaffst. Ober ob Du es schaffst, auch die Kontakte und Kalendereinträge usw. gesichert bekommst. Oder wie wäre es mit einer Rücksicherung?

    LG und genieße das WE.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Die Oberfläche neu gestaltet kann es nun an den Code gehen ! Outlook und Outlook Express sind zur Sicherung vorgesehen, sowie ein Restore - Rücksicherung. Anbei noch ein Screenshot. :rolleyes:

    @(A)Lina
    Wie kommst Du mit der 2er Version klar ?
    Da ich kein Outlook habe bräuchte ich mal den genauen Speicherort, also der mit dieser langen Zahl darin.

  • RR04
    Version 2: sehr gut !!!


    Frage: Outlook 2002 oder welches Outlook meinst Du?

    Gehe mal auf: http://www.mailhilfe.de und dort bei den Tips & Tricks sind die verschiedenen Outlookversionen und alle Informationen die man evtl. bräuchte. Ich blicke da aber nicht durch, was Du brauchen könntest. Aber die deutsche Seite von Mailhilfe sollte das beantworten was Du alles beachten müßtest. Ist nämlich eine ganze Menge, wenn ich das richtig gelesen habe.

    LG und mach weiter so. Das Tool ist sehr schön.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Neue Version arbeitet sehr gut.
    Für Links brauchst dich doch nicht bedanken.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl