Datendateien automatisch komprimieren
Mit Boardmitteln gibt es dazu leider keine Lösung.
Man kann aber mit Programmen arbeiten, die Maus-/Tastatureingaben aufzeichnen und dann wiedergeben. Ein bekanntes und bewährtes Tool ist zum Beispiel MacroExpress (Englisch). Ein vergleichbares Tool mit Deutscher Benutzeroberfläche ist MacroX. Beide Programme sind kostenpflichtig.
Es geht aber auch kostenlos mit dem Tool AutoHotKey. Das ist zwar nicht so komfortabel, funktioniert jedoch auch sehr zuverlässig.
Für Outlook® 2003, Outlook® 2007 und Outlook® 2010
Das automatische Abspielen von Tastatureingaben beinhaltet das Risiko, dass versehentlich Befehle an ein falsches Fenster gesendet werden, wenn sich dieses unerwartet in den Vordergrund drängt (z. B. ein Updatehinweis oder ein Hinweis vom Virenscanner etc.). In der Praxis ist dieses Risiko ziemlich gering und die Wahrscheinlichkeit, dass ein gesendeter Befehl einen Datenverlust auslöst, fast nur theoretischer Natur. Die Wahrscheinlichkeit steigt jedoch, wenn Sie den Wert für Delay extrem erhöhen (mehrere Sekunden). Dies sollten Sie nur zu Testzwecken tun und ansonsten den voreingestellten Wert von 100 ms lassen. Das Script funktioniert normaler weise auch mit einem Wert von 0 nur läuft dann alles so extrem schnell ab, dass man nichts mehr mitverfolgen kann.
Der Aufruf erfolgt (nach dem Download) per Doppelklick auf die jeweilige Datei. Dem Aufruf können 2 Parameter mitgegeben werden:
- /s
- Profilname
Der 1. Parameter bewirkt, dass keine Abfrage erscheint, ob die Komprimierung gestartet werden soll. Eine Abfrage ist z. B. bei geplanten Tasks gewünscht, jedoch nicht notwendig, wenn der Aufruf direkt aus Outlook® heraus erfolgt. Mit dem 2. Parameter können Sie ein bestimmtes Outlook®-Profil aufrufen. Dies ist nur erforderlich, wenn Outlook® nicht läuft und erst gestartet werden muss und Sie mehr als 1 Outlook®-Profil haben.
Beispiele:
Ruft die Komprimierung normal auf:
Compress.exe
Ruft die Komprimierung ohne Abfrage auf:
Compress.exe /s
Ruft die Komprimierung für ein bestimmtes Outlook®-Profil auf:
Compress.exe "Peter Marchert"
Hinweis: Wird ein falsches Profil angegeben, so beendet das Skript nicht automatisch, sondern muss mit einem Rechtsklick auf das weiße H auf grünem Grund beendet werden.
Ruft die Komprimierung für ein bestimmtes Outlook®-Profil ohne Abfrage auf:
Compress.exe /s "Peter Marchert"
Nach dem es sich um exe-Dateien handelt, können diese auch bequem in einen geplanten Task eingebunden werden. Es ist aber auch ein Aufruf aus Outlook® direkt möglich:
Option Explicit Public Sub Compress() Call Shell("C:\Compress.exe /s", vbHide) End Sub
Den Pfad zur Datei müssen Sie gegebenenfalls noch anpassen.
Wie Sie diesen Aufruf auf die Symbolleiste legen können, wird exemplarisch in dem Workshop VBA in Outlook® verwenden gezeigt. Beachten Sie dazu bitte auch die wichtigen Hinweise.
Für Outlook® 2003, Outlook® 2007 und Outlook® 2010
Für Interessierte nachfolgend der Code für das AutoHotKey-Skript:
; Compresses Outlook datafiles ; (c) Peter Marchert - http://www.outlook-stuff.com ; 2009-01-11 Version 1.0.0 ; 2010-10-14 Version 2.0.0 ; supported parameters: /s profile name ; /s = Silent mode ; profile name = Outlook profile name ; e. g. compress.exe /s "Max Muster" ; if you want to see, what the code does you can set a delay value in ms Delay = 100 ; determine the installed Outlook version gosub GetOutlookVersion if (Version = "2003") { WinTitle1 = Outlook-Datendateien WinTitle2 = Persönliche Ordner ListView = SysListView321 } else if (Version = "2007") { WinTitle1 = Kontoeinstellungen WinTitle2 = Persönliche Ordner ListView = SysListView322 } else if (Version = "2010") { WinTitle1 = Kontoeinstellungen WinTitle2 = Outlook-Datendatei ListView = SysListView322 } else { MsgBox, Nicht unterstützte Outlook Version ExitApp } ; script settings ; a window's title can contain WinTitle anywhere inside it to be a match SetTitleMatchMode 2 ; delay keystrokes SetKeyDelay, %Delay% ; read parameters param1 = %1% param2 = %2% ; called with parameter? /s (=silent mode) if (param1 = "/s") { profile = %param2% goto silent } else { profile = %param1% } ; ask user to start compressing now MsgBox, 36, Datendateien komprimieren, Komprimierung der Outlook-Datendateien jetzt starten? ; user cancelled? IfMsgBox No return silent: ; activate and/or start Outlook IfWinExist Microsoft Outlook { ; activate Outlook WinActivate } else { ; start Outlook ; Use the paramter /profile to start Outlook with a specified profile ; e. g. Run outlook /profile "Peter Marchert" if (profile <> "") Run outlook.exe /profile "%profile%" else Run outlook.exe WinWait Microsoft Outlook WinActivate Sleep 5000 } ; activate and/or open the account settings IfWinExist %WinTitle1% { ; activate account settings WinActivate bOpen = 1 } else { ; open account settings if (Version = "2003") or (Version = "2007") { Send {Alt down}dw{Alt up} } else { Send {Alt down}d{Alt up} Send {Tab 3} Send {Enter 2} } WinWait %WinTitle1% if (Version = "2010") { Send {Right} } bOpen = 0 } ; select the first data file ControlFocus %ListView%, %WinTitle1% ; compress all data files in the list ControlGet, List, List,, %ListView%, %WinTitle1% Loop, Parse, List, `n { If (Instr(A_LoopField, "Business Contact Manager") = 0) { If (Instr(A_LoopField, "Postfach") != 0) { Gosub, CompressOST } else { Gosub, CompressPST } } Sleep %Delay% Send {Down} } ; close account settings if it was not open if (bOpen = 0) WinClose %WinTitle1% ; script end return ; compress a pst file CompressPST: Send !e WinWait %WinTitle2% Send !j WinWait Jetzt komprimieren WinWaitNotActive Jetzt komprimieren WinClose %WinTitle2% WinWaitNotActive %WinTitle2% ControlFocus %ListView%, %WinTitle1% return ; compress an ost file CompressOST: Send !e WinWait Microsoft Exchange Send ^{Tab} Send !o WinWait Einstellungen für Offlineordner Send !j WinWait Jetzt komprimieren WinWaitNotActive Jetzt komprimieren WinClose Einstellungen für Offlineordner WinWaitNotActive Einstellungen für Offlineordner WinClose Microsoft Exchange WinWaitNotActive Microsoft Exchange ControlFocus %ListView%, %WinTitle1% return ; determine the installed Outlook version GetOutlookVersion: RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\15.0\Outlook\InstallRoot, Path if (errorlevel = 0) { Version = 2012 return } RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot\Virtual, VirtualOutlook if (errorlevel = 0) { Version = 2012 return } RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\14.0\Outlook\InstallRoot, Path if (errorlevel = 0) { Version = 2010 return } RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot\Virtual, VirtualOutlook if (errorlevel = 0) { Version = 2010 return } RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\12.0\Outlook\InstallRoot, Path if (errorlevel = 0) { Version = 2007 return } RegRead, Value, HKLM, SOFTWARE\Microsoft\Office\11.0\Outlook\InstallRoot, Path if (errorlevel = 0) { Version = 2003 return } return
Damit Sie das Skript eigenen Bedürfnissen anpassen können, kopieren Sie es einfach in einen beliebigen Texteditor und speichern Sie es mit der Dateierweiterung .ahk ab. Um eine Exe-Datei zu erstellen, klicken Sie im Explorer mit der rechten Maustaste auf diese .ahk-Datei und wählen aus dem Kontextmenü den Punkt "Compile Script" aus.
Hinweis: Damit das Erstellen einer Exe-Datei funktioniert, muss AutoHotKey installiert sein.