[R] Script Sauvegarde PSt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#61

Message 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)
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jujubois
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mer. 07 mai 2008 23:06
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#62

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#63

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jujubois
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mer. 07 mai 2008 23:06
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#64

Message 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
;===============================================================================
;===============================================================================
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#65

Message 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
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#66

Message 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
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#67

Message 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 :)
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#68

Message 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
Avatar du membre
Strofe
Niveau 5
Niveau 5
Messages : 182
Enregistré le : ven. 26 sept. 2008 23:16
Localisation : Picardie, Oise, Beauvais
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#69

Message 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+
Y a pas de problème, y a que des solutions. Reste à les trouver.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#70

Message par sksbir »

....
Modifié en dernier par sksbir le mer. 30 nov. 2011 13:35, modifié 1 fois.
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#71

Message 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
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#72

Message 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
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#73

Message 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:
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#74

Message par Blevanaks »

up

Merci
Avatar du membre
Strofe
Niveau 5
Niveau 5
Messages : 182
Enregistré le : ven. 26 sept. 2008 23:16
Localisation : Picardie, Oise, Beauvais
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#75

Message 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+
Y a pas de problème, y a que des solutions. Reste à les trouver.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#76

Message 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.
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#77

Message par Blevanaks »

Pour Info http://support.microsoft.com/kb/2028411

Merci quand même ^^

Sinon personne d'autre pour m'aider ? :P
Modifié en dernier par Blevanaks le jeu. 17 nov. 2011 12:12, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#78

Message 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'.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Blevanaks
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 25 sept. 2010 12:34
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#79

Message 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
Avatar du membre
Strofe
Niveau 5
Niveau 5
Messages : 182
Enregistré le : ven. 26 sept. 2008 23:16
Localisation : Picardie, Oise, Beauvais
Status : Hors ligne

Re: [R] Script Sauvegarde PSt

#80

Message par Strofe »

Bonjour

J'ai déjà posté ce code qui fonctionne sur Seven 64 bit et Office 2010
► Afficher le texte
Y a pas de problème, y a que des solutions. Reste à les trouver.
Répondre