Je souhaite mettre en place un script permettant de compresser les fichiers PST.
J'ai récupéré ce code que j'essai de modifier mais ça ne fonctionne pas.
Merci de votre aide.
PS: Je débute en autoit
#include <GUIListView.au3>
SplashTextOn("Compacting now", "This may take hours...", 250, 40)
;//Runs the mail application that is in control panel.
$Path = FileGetShortName(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls", "mlcfg32.cpl"))
Run(@SystemDir & "\control.exe " & $Path)
Opt("WinTitleMatchMode", 4)
;~ WinWait("Configuration de la messagerie", "Setup e-mail accounts and directories")
ControlClick("Configuration de la messagerie", "Comptes de messagerie", "Button2")
WinWait("Parametres du compte", "AcctMgr Tab")
;//Gets list of data files listed
$sTitle = "Parametres du compte"
$hWnd = WinGetHandle($sTitle)
If @error Then
MsgBox(0, "Error", "Unable to find window")
EndIf
WinActivate($hWnd)
$hlist = ControlGetHandle($hWnd, "", "[CLASS:SysListView32; INSTANCE:2]")
If @error Then Exit
$arraycount = _GUICtrlListView_GetItemCount($hlist)
Local $ltext[$arraycount]
$i = 0
Do
$ltext[$i] = _GUICtrlListView_GetItemText($hlist, $i)
$i = $i + 1
Until $i = $arraycount
;//Goes into each listed Data file and compresses them
$b = 0
Do
_GUICtrlListView_ClickItem($hlist, $b, "left", False, 2)
Sleep(1000)
WinWaitActive("Fichiers de données Outlook")
ControlClick("Fichiers de données", "", "[CLASS:Button; INSTANCE:2]") ; click Compact Now
Sleep(1200)
If WinExists("Compact Now") Then WinWaitClose("Compact Now")
WinClose("Outlook Data File")
$b = $b + 1
Until $b = $arraycount
WinClose("Outlook Data Files")
WinClose("Account Settings")
WinClose("Mail Setup - Outlook")
SplashOff()
MsgBox(64, "Outlook", "All accounts were processed." & @CRLF & "Closing in 5 seconds...", 5)
Exit
Modifié en dernier par jguinch le mer. 21 oct. 2015 20:22, modifié 3 fois.
Raison :Ajout de la balise Spoiler
au début du script. Ça permettra de voir à partir quelle ligne il y a une erreur ou un blocage. Le script devra être exécuté dans SciTE puisque c'est dans la partie "Output" de SciTE que les messages seront affichés.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
#include <GUIListView.au3>
Opt("WinTitleMatchMode", 4)
SplashTextOn("Compacting now", "This may take hours...", 250, 40)
$Path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls", "mlcfg32.cpl")
Run(@SystemDir & "\control.exe " & $Path)
$hMailCfg = WinWait("Configuration de la messagerie", "Comptes de messagerie")
ControlClick("Configuration de la messagerie", "Comptes de messagerie", "Button2")
$hAccountWindow = WinWait("Paramètres du compte", "Fichiers de données")
$hlist = ControlGetHandle($hAccountWindow, "", "[CLASS:SysListView32; INSTANCE:2]")
If @error Then Exit
$arraycount = _GUICtrlListView_GetItemCount($hlist)
If Not $arraycount Then Exit MsgBox(16, "", "Aucun fichier de données trouvé")
Local $ltext[$arraycount]
For $i = 0 To $arraycount - 1
_GUICtrlListView_ClickItem($hlist, $i, "left", False, 2)
$hDataFile = WinWait("Fichier de données Outlook", "Fichier de données Outlook")
ControlClick($hDataFile, "", "Button2")
$hWait = WinWait("Compresser")
WinWaitClose($hWait)
WinClose($hDataFile)
Next
WinClose($hAccountWindow)
WinClose($hMailCfg)
SplashOff()
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Merci jguinch. Chez moi ça bloque sur les fenêtres "Dossiers personnels" Il n'arrive pas à cliquer sur le bouton compresser.
Pour info je suis sous office 2007.