Page 4 sur 5

Re: [R] Script Sauvegarde PSt

Posté : ven. 13 juin 2008 16:56
par Tlem
Normal, car

Code : Tout sélectionner

    If FileExists($CMDLINE[1]) Then
        $DstLine = $CMDLINE[1]
        $Archive =  $DstLine & "_" & @YEAR & @MON & @MDAY & ".7z"
        $sCMDLine = " a -r " & '"' &$Archive& '"' & " " & '"' & $Dst & '"'
    Else
        MsgBox(0,"erreur","paramètre obligatoire")
        exit
    EndIf
 
n'est pas au bon endroit.
Il devrait être tout à la fin du bloc.

Code : Tout sélectionner

    EndIf
    <= Ici
EndIf


$Ca = GUICreate ( "OutlookBackupTool" , 250 , 46 , 0 , 0 , $WS_POPUP,$WS_EX_TOPMOST+$WS_EX_WINDOWEDGE+$WS_EX_DLGMODALFRAME)
 

Re: [R] Script Sauvegarde PSt

Posté : ven. 13 juin 2008 17:05
par jujubois
Hmm

oui mais je ne comprend pas à quel moment pas variable $sCMDLine va etre renseigné ? car mon script rentre direct dans sa boucle de copie et etc .... donc j arrive au moment de la compression avec ma variable non renseigné

Julien

Re: [R] Script Sauvegarde PSt

Posté : ven. 13 juin 2008 18:10
par Tlem
Bien c'est simple sans l'être !!! :P

La première fois ou vous lancez le script, l'analyse de la ligne de commande regarde le premier paramètre.
Si ce premier paramètre est 'S' alors il fait la copie. Mais en l'occurrence, le premier paramètre est différent de 'S' et donc il n'applique pas le code de :

Code : Tout sélectionner

If $CMDLINE[1] = "S" Then
; ...
; ...
     Else
         MsgBox(64,"Erreur Copie", "Erreur lors de la copie")
         Exit
     EndIf
               
     Exit
   
EndIf
Donc il doit passer au If suivant (Dans la hiérarchie du code) et donc c'est

Code : Tout sélectionner

If FileExists($CMDLINE[1]) Then
Si le chemin existe alors la destination sera le chemin passé en paramètre, et le script continue le code, sinon message d'erreur et sortie de script.

Donc c'est à ce stade que ça ce complique, car un peut plus loin dans le code, on relance le script (Une deuxième instance)

Code : Tout sélectionner

$Pid = Run(@ScriptName & ' S')
 
mais cette fois-ci avec comme argument 'S'.
Et là le code du

Code : Tout sélectionner

If $CMDLINE[1] = "S" Then
est ecécuté !!! :mrgreen:

Re: [R] Script Sauvegarde PSt

Posté : sam. 14 juin 2008 13:13
par jujubois
Voici ce que j ai fait mais ma variable $sCMDLine n a pas renseigné .... j arrive pas a comprendre le fonctionnement des paramètres c est pas tres clair pour moi :/

Code : Tout sélectionner

#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstants.au3>
#include <string.au3>
#include <file.au3>
#include <INet.au3>
#NoTrayIcon

HotKeySet("²", "endscript")



If Not @Compiled Then
    MsgBox(16, "Erreur", "Le script doit être compiler pour fonctionner.")
    Exit
EndIf



$Src = _PathOutlookPST()
$Dst = @ScriptDir  & "\" & @UserName & "_" & @YEAR & @MON & @MDAY
$7zaPath = @TempDir & "\7za.exe"

$Outlook = "non"


If Not Fileexists($Src) Then
    MsgBox(16,"Erreur","Aucun profil Outlook trouvé !")
    exit
Else
    DirCreate (@ScriptDir  & "\" & @UserName & "_" & @YEAR & @MON & @MDAY )
EndIf

FileInstall("c:\7za\7za.exe",$7zaPath)

If Not Fileexists($7zaPath) Then
    MsgBox(16,"Erreur","Le programme de compression n'à pas été trouvé !")
    exit
EndIf


If $CMDLINE[0] Then
    If $CMDLINE[1] = "S" Then
        sleep(1000)  
       
        If ProcessExists("outlook.exe") Then
            ProcessClose("outlook.exe")
            $Outlook = "oui"
            Sleep(5000)
        EndIf
    

    
        ControlSetText ( "OutlookBackupTool", "", "[CLASS:Static; INSTANCE:1]", "Copie en cours ...")
        
        If FileCopy($Src, $Dst, 9) Then
            
            ControlSetText ( "OutlookBackupTool", "", "[CLASS:Static; INSTANCE:1]", "Copie terminée ...")
            sleep(1000)
            
            If $Outlook = "oui" Then
                ShellExecute("outlook.exe")
            EndIf
        
            ControlSetText ( "OutlookBackupTool", "", "[CLASS:Static; INSTANCE:1]", "Compression en cours ...")
            $Res = _CMD7zaExe($7zaPath, $sCMDLine)
            ControlSetText ( "OutlookBackupTool", "", "[CLASS:Static; INSTANCE:1]", "Compression terminée ...")
            sleep(1000) 
            
            If $Res = 0 Then 
                MsgBox(64,"Erreur Archive", "Erreur lors de la création de l'archive") 
                Exit
            Else
        
            ControlSetText ( "OutlookBackupTool", "", "[CLASS:Static; INSTANCE:1]", "Sauvegarde terminée ...")
            sleep(1000) 
            FileDelete($7zaPath)
            DirRemove (@ScriptDir  & "\" & @UserName & "_" & @YEAR & @MON & @MDAY,1)
            Exit
        EndIf
        Else
            MsgBox(64,"Erreur Copie", "Erreur lors de la copie") 
            Exit
        EndIf
                
        Exit
    
EndIf

    If FileExists($CMDLINE[1]) Then
        $DstLine = $CMDLINE[1]
        $Archive =  $DstLine & "_" & @YEAR & @MON & @MDAY & ".7z"
        $sCMDLine = " a -r " & '"' &$Archive& '"' & " " & '"' & $Dst & '"'
    Else
        MsgBox(0,"erreur","paramètre obligatoire")
        exit
    EndIf

EndIf


$Ca = GUICreate ( "OutlookBackupTool" , 250 , 46 , 0 , 0 , $WS_POPUP,$WS_EX_TOPMOST+$WS_EX_WINDOWEDGE+$WS_EX_DLGMODALFRAME)
GUISetBkColor ( 0x000000 , $Ca )
$Da = GUICtrlCreateLabel ("Sauvegarde Outlook en cours ...",  23, -1, 250,23)
GuiCtrlCreateGraphic(-1, 1, 252,45,$SS_SUNKEN)
GUICtrlSetColor(-1, 0XFFFFFF)
GUICtrlSetColor ( $Da, 0XFFFFFF)
GUICtrlSetFont ($Da, "12" , "50" , "" , "Courrier New")
GUICtrlCreateGraphic(1, 23, 250,20)
GUICtrlSetColor(-1, 0x007F00)
GuiSetState(@SW_SHOW)



$Pid = Run(@ScriptName & ' S')
AdlibEnable("_Test2ndInstance")
_SliderRight()


;===============================================================================
;===============================================================================

Func _PathOutlookPST()
Dim $szDrive, $szDir, $szFName, $szExt  
$sKeyPath = "HKCU\SOFTWARE\MICROSOFT\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook"

For $i= 1 to 50
    $sKey = RegEnumKey($sKeyPath, $i)
        If @error <> 0 then ExitLoop
    For $ii = 1 to 100
        $sEnumPath = $sKeyPath & "\" & $sKey
            $sKeyVal = RegEnumVal($sEnumPath, $ii)

        If @error <> 0 Then ExitLoop
        If $sKeyVal = "001f6700" Then
            $sRegVal = RegRead ($sEnumPath, $sKeyVal)
            $Hex = StringReplace ( $sRegVal, "00", "")
            $CheminCOMPLET = _HexToString($Hex)
            _PathSplit($CheminCOMPLET, $szDrive, $szDir, $szFName, $szExt)
            $CheminPST = $szDrive & $szDir
            Return $CheminPST
        EndIf
    Next
Next
EndFunc
;===============================================================================

Func _CMD7zaExe($7zaPath, $sCMDLine)
    If  Fileexists($Archive) Then
        FileDelete($Archive)
    EndIf
    
    ShellExecuteWait($7zaPath, $sCMDLine, "", "", @SW_HIDE)
    $error = @error
    
    If $error Then
        Return 0
    Else
        Return 1
    EndIf
EndFunc   ;==>_CMD7zaExe
;===============================================================================

Func _SliderRight()
        Local $newcolor,$color = 0x050000
    For $m = 0 To 245 Step 5
        $newcolor += $color
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $newcolor)
        Sleep(50)
    Next
     _SliderLeft()
EndFunc
;===============================================================================

Func _SliderLeft()
    Local $backcolor,$color = 0x050000
    For $m = 245 To 0 Step -5
        $backcolor += $color  
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $backcolor)
        Sleep(50)
    Next
    _SliderRight()
EndFunc
;===============================================================================

Func _Test2ndInstance()
    If Not ProcessExists($Pid) Then Exit
EndFunc
;===============================================================================
    
Func endscript()
    
    If ProcessExists("7za.exe") Then
        ProcessClose("7za.exe")
        Sleep(5000)
    EndIf
    
    If  Fileexists(@ScriptDir  & "\" & @UserName & "_" & @YEAR & @MON & @MDAY) Then
        DirRemove (@ScriptDir  & "\" & @UserName & "_" & @YEAR & @MON & @MDAY,1)
    EndIf

    If  Fileexists($Archive) Then
        FileDelete($Archive)
    EndIf
    
    Exit
    
EndFunc
;===============================================================================
;===============================================================================

Re: [R] Script Sauvegarde PSt

Posté : dim. 15 juin 2008 20:24
par Tlem
Est-ce que ceci vous parait plus clair :

Code : Tout sélectionner

; Début du bloc de conditions pour paramètres de lancement
If $CMDLINE[0] Then                 ; Si il y a une ligne de commande
    If $CMDLINE[1] = "S" Then       ; Si le premier paramètre est S
    
            ; Code à exécuter si le premier paramètre est S
        
    ElseIf FileExists($CMDLINE[1]) Then  ; Sinon si le premier paramètre est un chemin existant.

            ; Code à exécuter si le premier paramètre est un chemin existant
        
    Else    ; Sinon c'est qu'il y à erreur ...
        
            ; Code à exécuter si toutes les conditions précédente ne sont pas remplies.
        
    EndIf

EndIf
; Fin du bloc de conditions pour paramètres de lancement
 

Re: [R] Script Sauvegarde PSt

Posté : jeu. 03 nov. 2011 10:10
par Blevanaks
Bonjour à tous

J'utilisais ce script pour la sauvegarde de pst en clientèle cependant depuis le passage à win7 et office 2010 la recherche du chemin des pst ne marche plus

Pouvez vous m aider ?

Merci

Re: [R] Script Sauvegarde PSt

Posté : jeu. 03 nov. 2011 14:09
par TopXm
Bonjour,

Ce sont les clés de registre qui ont changées à priori.

Ce lien devrait t'aider : http://support.microsoft.com/kb/832925/fr :)

Re: [R] Script Sauvegarde PSt

Posté : jeu. 03 nov. 2011 20:59
par Blevanaks
salut

je ne pense pas car la fonction Pathoutlookpst recherche à cette endroit

$sKeyPath = "HKCU\SOFTWARE\MICROSOFT\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook"

une autre idée ?

Merci

Re: [R] Script Sauvegarde PSt

Posté : jeu. 03 nov. 2011 22:12
par Strofe
Bonsoir

Fonctionne XP Outlook 2003 et 2010, Seven 32 et 64 Bit Outlook 2010
Sous 2010 le répertoire de création du pst est changé. Il se trouve dans "mes documents"
► Afficher le texte
Personnellement, j'ai déplacé les PST sur le volume D dans un réportoire nommé 01-Outlook et j'ai mis en oeuvre un script de déconnexion.

Cela fait deux semaines que le script fonctionne. Ouf enfin des sauvegardes...
► Afficher le texte
A+

Re: [R] Script Sauvegarde PSt

Posté : ven. 04 nov. 2011 17:43
par sksbir
....

Re: [R] Script Sauvegarde PSt

Posté : lun. 07 nov. 2011 09:20
par Blevanaks
salut

Merci pour vos réponses 8)

@Strofe ton code me retourne "-1 Taille (ko) : 0" cependant j ai bien un pst de 18mo

@sksbir j ai erreur " Erreur activation objet MAPI.session, CDO n'est pas installé"

Une idée ? merci en tout cas

Re: [R] Script Sauvegarde PSt

Posté : lun. 07 nov. 2011 14:36
par sksbir
Blevanaks a écrit :salut
Merci pour vos réponses 8)
....
@sksbir j ai erreur " Erreur activation objet MAPI.session, CDO n'est pas installé"
Une idée ? merci en tout cas
Oui : tu peux essayer d'installer ça ? http://www.microsoft.com/download/en/de ... en&id=3671

Re: [R] Script Sauvegarde PSt

Posté : mer. 09 nov. 2011 09:07
par Blevanaks
sksbir a écrit :
Blevanaks a écrit :salut
Merci pour vos réponses 8)
....
@sksbir j ai erreur " Erreur activation objet MAPI.session, CDO n'est pas installé"
Une idée ? merci en tout cas
Oui : tu peux essayer d'installer ça ? http://www.microsoft.com/download/en/de ... en&id=3671
Ne marche pas :? :cry:

Re: [R] Script Sauvegarde PSt

Posté : mar. 15 nov. 2011 10:05
par Blevanaks
up

Merci

Re: [R] Script Sauvegarde PSt

Posté : mar. 15 nov. 2011 17:12
par Strofe
Bonjour
Blevanaks a écrit : @Strofe ton code me retourne "-1 Taille (ko) : 0" cependant j ai bien un pst de 18mo
Sur quel code ???

Merci de poster ton code, STP

A+

Re: [R] Script Sauvegarde PSt

Posté : mer. 16 nov. 2011 16:42
par sksbir
Blevanaks a écrit :Ne marche pas :? :cry:
mmm, alors désolé, mais il semblerait d'après ce lien que ça ne fonctionne pas sous windows 7 64 bits.

désolé, mais j'abandonne car je n'ai pas de plateforme de test sous l'architecture office 2010 / W7.

Re: [R] Script Sauvegarde PSt

Posté : jeu. 17 nov. 2011 11:06
par Blevanaks
Pour Info http://support.microsoft.com/kb/2028411

Merci quand même ^^

Sinon personne d'autre pour m'aider ? :P

Re: [R] Script Sauvegarde PSt

Posté : jeu. 17 nov. 2011 11:11
par Tlem
@Blevanaks
Il n'y a aucun intérêt à utiliser le bouton 'Citer' lors d'une réponse, si celle-ci se trouve à la suite du message auquel vous répondez !!!

Merci d'utiliser plutôt le bouton 'Répondre'.

Re: [R] Script Sauvegarde PSt

Posté : jeu. 17 nov. 2011 12:13
par Blevanaks
C est corrigé Tlem désolé

Tu n aurais pas une idée pour adapter ce script pour win 7 et office 2010 en 64bits car je n'arrive plus à détecter les chemins pst

Merci

Re: [R] Script Sauvegarde PSt

Posté : jeu. 17 nov. 2011 13:37
par Strofe
Bonjour

J'ai déjà posté ce code qui fonctionne sur Seven 64 bit et Office 2010
► Afficher le texte