après de nombreux problème a mon taf avec notre serveur en carton j'ai décidé de me faire un prog d'auto BackUp
de mon fichier suivant l'heure.
Malheureusement je n'ai codé la possibilité d'ajouter qu'un seul fichier, par contre on peux faire la BackUp manuellement
ou automatiquement, les heures possibles vont de 09h00 => 18h00 par tranche de 30 min. Vous pouvez modifier ça dans les options
ainsi que le fichier à sauver, le répertoir où faire la BackUp et le nom du fichier une fois sauvé.
Par contre on ne rigole pas mais comme j'aime bien avoir une barre pour savoir ou j'en suis, j'en ai 'codé' une

C'est cheap mais bon comme je sais pas le faire pour mon exemple j'ai laissé tel quel.
Voila le code :
Code : Tout sélectionner
; ------------------------------------------------------------
;
; Nom du projet : PureBasic - Auto BackUp
; Description : Sauvegarde Un fichier automatiquement
; Version : 1.8
; Programmé par : DarkIchigo
; Date : 22/03/2011
; Mise à jour : 07/04/2011
;
; ------------------------------------------------------------
UsePNGImageDecoder() : InitNetwork()
;->>>> Déclaration variables / constantes <<<<
#CopyFlag = #PB_FileSystem_Recursive | #PB_FileSystem_Force
#Flag = #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_Invisible
Enumeration ;{ ...
#Window_0 ;
#Btn_BackUP ;
#Btn_Quit ;
#Btn_Settings ;
#Btn_Open ;
#Texte_Copy ;
#ProgressBar_Copy ;
#File_To_Save ;
#SytrayIco ;
#Ico_Open ;
#Ico_Idle ;
#Ico_Saving ;
#PopUp ;
#PopUp_Reduire ;
#PopUp_Agrandir ;
#PopUp_Quiter ;
#Opt_Windows ;
#Opt_Frame3D_Heures ;
#Opt_Tx_Heures ;
#Opt_Check_Heures_09h00 ;
#Opt_Check_Heures_09h30 ;
#Opt_Check_Heures_10h00 ;
#Opt_Check_Heures_10h30 ;
#Opt_Check_Heures_11h00 ;
#Opt_Check_Heures_11h30 ;
#Opt_Check_Heures_12h00 ;
#Opt_Check_Heures_12h30 ;
#Opt_Check_Heures_13h00 ;
#Opt_Check_Heures_13h30 ;
#Opt_Check_Heures_14h00 ;
#Opt_Check_Heures_14h30 ;
#Opt_Check_Heures_15h00 ;
#Opt_Check_Heures_15h30 ;
#Opt_Check_Heures_16h00 ;
#Opt_Check_Heures_16h30 ;
#Opt_Check_Heures_17h00 ;
#Opt_Check_Heures_17h30 ;
#Opt_Check_Heures_18h00 ;
#Opt_Check_Heures_18h30 ;
#Opt_Frame3D_BackUp ;
#Opt_Tx_BackUp ;
#Opt_BackUp_Edit ;
#Opt_BackUp_Btn ;
#Opt_Frame3D_SavingPath ;
#Opt_Tx_SavingPath ;
#Opt_SavingPath_Edit ;
#Opt_SavingPath_Btn ;
#Opt_Frame3D_SaveName ;
#Opt_Tx_SaveName ;
#Opt_SavingName_Edit ;
#Opt_Button_Ok ;
#Opt_Button_Cancel ;
#Opt_Button_Apply ;}
EndEnumeration ; ...
Global Home$ ; Chemin de la BackUp
Global PathFile$ ; Chemin complet du fichier a sauver
Global File$ ; Fichier a sauver
Global Quit, Flag.b, Mini
Global t09h00, t09h30, t10h00, t10h30, t11h00, t11h30, t12h00, t12h30, t13h00, t13h30
Global t14h00, t14h30, t15h00, t15h30, t16h00, t16h30, t17h00, t17h30, t18h00, t18h30
Declare BackUp() ; Procédure de BackUp , BackUp Procedure
Declare Open_Prefs() ; Procédure d'ouverture de préférences , Prefs. opening Procedure
Declare Save_Prefs() ; Procédure de sauvegarde des préférences , Prefs. saving Procedure
;->>>> Procédures <<<<
Procedure GetIcone(WinHandle) ; Récupère l'icone de base du programme enregistrée dans PB , Get the PB ico set to the prog
hInstance = GetWindowLong_(WinHandle, #GWL_HINSTANCE)
app.s = Space(255)
GetModuleFileName_(0, @app, 255)
ProcedureReturn ExtractIcon_(hInstance, app, 0)
EndProcedure
Procedure Minimize(Flag) ; Affiche ou réduit la fenêtre dans le SysTray , Show or hide in the SysTray the main window
IcoOpenID = CatchImage(#Ico_Open, ?Open)
IcoIdleID = CatchImage(#Ico_Idle, ?Idle)
IcoSavingID = CatchImage(#Ico_Saving, ?Saving)
If Flag = 1
Mini = 1
DisableMenuItem(#PopUp, #PopUp_Reduire, 1) ; Désactive le menu 1 , Disable menu 1
DisableMenuItem(#PopUp, #PopUp_Agrandir, 0) ; Active le menu 2 , Enable menu 2
HideWindow(#Window_0, 1) ; Réduit la fenêtre , Minimize window
ChangeSysTrayIcon(#SytrayIco, IcoIdleID) ; Change l'icone , Change the ico
Else
Mini = 0
DisableMenuItem(#PopUp, #PopUp_Reduire, 0) ; Active le menu 1 , Enable menu 1
DisableMenuItem(#PopUp, #PopUp_Agrandir, 1) ; Désactive le menu 2 , Disable menu 2
HideWindow(#Window_0, 0) ; Affiche la fenêtre , Display the window
ChangeSysTrayIcon(#SytrayIco, IcoOpenID) ; Change l'icone , Change the ico
EndIf
EndProcedure
Procedure Time_Tester(*minute) ; Vérifie si il est l'heure de lancer la BackUp , Check if it's time to BackUp
; vérifie si il est l'heure de lancer la BackUp
H01$ = "09h00"
H02$ = "09h30"
H03$ = "10h00"
H04$ = "10h30"
H05$ = "11h00"
H06$ = "11h30"
H07$ = "12h00"
H08$ = "12h30"
H09$ = "13h00"
H10$ = "13h30"
H11$ = "14h00"
H12$ = "14h30"
H13$ = "15h00"
H14$ = "15h30"
H15$ = "16h00"
H16$ = "16h30"
H17$ = "17h00"
H18$ = "17h30"
H19$ = "18h00"
H20$ = "18h30"
Repeat
Heure$ = FormatDate("%hhh%ii", Date()) ; Récupère l'heure actuelle , Get the actual time
Select Heure$
Case H01$ : If t09h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; Si l'heure actuelle = l'heure de , If actual time = BackUp time
Case H02$ : If t09h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; de BackUp & l'heure de BackUp = 1 , & BackUp time = 1 (activated in the
Case H03$ : If t10h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; (activée dans les options) , options) then start the BackUp
Case H04$ : If t10h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; alors on lance la BackUp puis une , and then a 1min delay to be sure
Case H05$ : If t11h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; tempo de 1 min pour ne pas lancer , not to start the same BackUp again
Case H06$ : If t11h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf ; plusieurs fois la même BackUp ,
Case H07$ : If t12h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H08$ : If t12h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H09$ : If t13h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H10$ : If t13h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H11$ : If t14h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H12$ : If t14h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H13$ : If t15h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H14$ : If t15h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H15$ : If t16h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H16$ : If t16h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H17$ : If t17h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H18$ : If t17h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H19$ : If t18h00 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
Case H20$ : If t18h30 = 1 : Debug Heure$ : BackUp() : Delay(*minute) : EndIf
EndSelect
Delay(*minute/3) ; Tempo de 20s pour être sur de ne , 20s delay to be sur not to miss
ForEver ; pas oublié de BackUp , a BackUp
EndProcedure
Procedure BackUp() ; Procédure de la BackUp , The BackUp Procedure
IcoOpenID = CatchImage(#Ico_Open, ?Open)
IcoIdleID = CatchImage(#Ico_Idle, ?Idle)
IcoSavingID = CatchImage(#Ico_Saving, ?Saving)
ChangeSysTrayIcon(#SytrayIco, IcoSavingID) ; Change l'ico du prog , Change the prog ico
Date$ = FormatDate("%yyyy.%mm.%dd", Date()) ; Recup la date actuelle , Get the actual date
Heure$ = FormatDate("%hhh%ii", Date()) ; Recup l'heure actuelle , Get the actual time
SizeBite = FileSize(PathFile$) ; Recup la taille du fichier à BackUp , Get the size of the BackUp file
If SizeBite > 0 ; Si la taille > 0 le fichier existe , If size > 0 the file existe
SizeKo.f = SizeBite/1024 ; donc on peux continuer , so we can go on
SizeMo.f = SizeBite/1048576
Debug SizeKo
SetGadgetAttribute(#ProgressBar_Copy, #PB_ProgressBar_Maximum, SizeKo) ; Attribue la taille du fichier au la , Set the max of the ProgressBar
SetGadgetState(#ProgressBar_Copy, 0) ; ProgressBar_Max puis l'init a 0 , at the size and init at 0
SetCurrentDirectory(Home$) ; Règle le dossier en actif , Set the activ folder
If FileSize(Home$+"\"+Date$) = -1 ; Test si le dossier éxiste déjà , Checks if the folder exist
CreateDirectory(Date$)
SetCurrentDirectory(Home$+"\"+Date$) ; Règle le dossier en actif , Set the activ folder
If FileSize(Home$+"\"+Date$+"\"+Heure$) = -1 ; Test si le dossier éxiste déjà , Checks if the folder exist
CreateDirectory(Heure$) ; Créé le dossier , Create the folder
SetCurrentDirectory(Home$+"\"+Date$+"\"+Heure$) ; Règle le dossier en actif , Set the activ folder
CopyFile(PathFile$, Home$+"\"+Date$+"\"+Heure$+"\"+File$) ; Copie le fichier , Copy the file
Delay(50)
For i = 1 To 3 ; Cheap trick to make us look like we have a fully
SetGadgetState(#ProgressBar_Copy, i*(SizeKo/4)) : i = i + 1 : Delay(150); operationnal ProgressBar but let's face it, we don't...
Next
SetGadgetState(#ProgressBar_Copy, SizeKo)
EndIf
SetCurrentDirectory(Home$+"\"+Date$+"\"+Heure$) ; Règle le dossier en actif , Set the activ folder
CopyFile(PathFile$, Home$+"\"+Date$+"\"+Heure$+"\"+File$) ; Copie le fichier , Copy the file
Delay(50)
For i = 1 To 3 ; Cheap trick to make us look like we have a fully
SetGadgetState(#ProgressBar_Copy, i*(SizeKo/4)) : i = i + 1 : Delay(150) ; operationnal ProgressBar but let's face it, we don't...
Next
SetGadgetState(#ProgressBar_Copy, SizeKo)
EndIf
SetCurrentDirectory(Home$+"\"+Date$) ; Règle le dossier en actif , Set the activ folder
If FileSize(Home$+"\"+Date$+"\"+Heure$) = -1 ; Test si le dossier éxiste déjà , Checks if the folder exists
CreateDirectory(Heure$)
SetCurrentDirectory(Home$+"\"+Date$+"\"+Heure$) ; Règle le dossier en actif , Set the activ folder
CopyFile(PathFile$, Home$+"\"+Date$+"\"+Heure$+"\"+File$) ; Copie le fichier , Copy the file
Delay(50)
For i = 1 To 3 ; Cheap trick to make us look like we have a fully
SetGadgetState(#ProgressBar_Copy, i*(SizeKo/4)) : i = i + 1 : Delay(150) ; operationnal ProgressBar but let's face it, we don't...
Next
SetGadgetState(#ProgressBar_Copy, SizeKo)
EndIf
SetCurrentDirectory(Home$+"\"+Date$+"\"+Heure$) ; Règle le dossier en actif , Set the activ folder
If FileSize(Home$+"\"+Date$+"\"+Heure$+"\"+File$) = -1 ; Test si le dossier du éxiste déjà , Checks if the folder exists
CopyFile(PathFile$, Home$+"\"+Date$+"\"+Heure$+"\"+File$) ; Copie le fichier , Copy the file
Delay(50)
For i = 1 To 3 ; Cheap trick to make us look like we have a fully
SetGadgetState(#ProgressBar_Copy, i*(SizeKo/4)) : i = i + 1 : Delay(150) ; operationnal ProgressBar but let's face it, we don't...
Next
SetGadgetState(#ProgressBar_Copy, SizeKo)
EndIf
EndIf
SetCurrentDirectory(Home$) ; Réinitialise le dossier de BackUp en actif , Reset the BackUp flder in activ
Delay(750) : SetGadgetState(#ProgressBar_Copy, 0) ; Réinitialise la ProgressBar a 0 , Reset the ProgressBar to 0
Select Mini ; Test si le programme était caché , Check if the prog was hidden
Case 1 : ChangeSysTrayIcon(#SytrayIco, IcoIdleID) ; Remet l'icone Idle , Set back the ico to Idle
Case 0 : ChangeSysTrayIcon(#SytrayIco, IcoOpenID) ; Remet l'icone Open , Set back the ico to Open
EndSelect
EndProcedure
Procedure Options() ; Fenêtre des options , Options window
Open_Prefs() ; Ouvre le fichier des Prefs. et lis les données , Open the Prefs. file and reads the datas
X_Wind = WindowX(#Window_0) : Y_Wind = WindowY(#Window_0) ; Ouvre la fenêtre des options , Open the option window
OpenWindow(#Opt_Windows, X_Wind+25, Y_Wind+25, 400, 475+7, "Options - Auto BackUp", #PB_Window_BorderLess|#PB_Window_Tool|#PB_Window_WindowCentered|#PB_Window_SystemMenu, #Window_0)
;Choix de l'heure
Frame3DGadget(#Opt_Frame3D_Heures, 2, 3, 400-4, 20+(10*20)+15+2,"" , #PB_Frame3D_Flat)
TextGadget(#Opt_Tx_Heures, 5, 15, 380/2-5, 15, "Choisissez les heures de l'Auto BackUp :", #PB_Text_Center) : h = 20
CheckBoxGadget(#Opt_Check_Heures_09h00, 105, 15+h, 380/4-5, 15, "09h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_09h00, t09h00)
CheckBoxGadget(#Opt_Check_Heures_09h30, 105, 15+h, 380/4-5, 15, "09h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_09h30, t09h30)
CheckBoxGadget(#Opt_Check_Heures_10h00, 105, 15+h, 380/4-5, 15, "10h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_10h00, t10h00)
CheckBoxGadget(#Opt_Check_Heures_10h30, 105, 15+h, 380/4-5, 15, "10h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_10h30, t10h30)
CheckBoxGadget(#Opt_Check_Heures_11h00, 105, 15+h, 380/4-5, 15, "11h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_11h00, t11h00)
CheckBoxGadget(#Opt_Check_Heures_11h30, 105, 15+h, 380/4-5, 15, "11h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_11h30, t11h30)
CheckBoxGadget(#Opt_Check_Heures_12h00, 105, 15+h, 380/4-5, 15, "12h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_12h00, t12h00)
CheckBoxGadget(#Opt_Check_Heures_12h30, 105, 15+h, 380/4-5, 15, "12h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_12h30, t12h30)
CheckBoxGadget(#Opt_Check_Heures_13h00, 105, 15+h, 380/4-5, 15, "13h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_13h00, t13h00)
CheckBoxGadget(#Opt_Check_Heures_13h30, 105, 15+h, 380/4-5, 15, "13h30") : h = 20 : SetGadgetState(#Opt_Check_Heures_13h30, t13h30)
CheckBoxGadget(#Opt_Check_Heures_14h00, 255, 15+h, 380/4-5, 15, "14h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_14h00, t14h00)
CheckBoxGadget(#Opt_Check_Heures_14h30, 255, 15+h, 380/4-5, 15, "14h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_14h30, t14h30)
CheckBoxGadget(#Opt_Check_Heures_15h00, 255, 15+h, 380/4-5, 15, "15h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_15h00, t15h00)
CheckBoxGadget(#Opt_Check_Heures_15h30, 255, 15+h, 380/4-5, 15, "15h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_15h30, t15h30)
CheckBoxGadget(#Opt_Check_Heures_16h00, 255, 15+h, 380/4-5, 15, "16h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_16h00, t16h00)
CheckBoxGadget(#Opt_Check_Heures_16h30, 255, 15+h, 380/4-5, 15, "16h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_16h30, t16h30)
CheckBoxGadget(#Opt_Check_Heures_17h00, 255, 15+h, 380/4-5, 15, "17h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_17h00, t17h00)
CheckBoxGadget(#Opt_Check_Heures_17h30, 255, 15+h, 380/4-5, 15, "17h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_17h30, t17h30)
CheckBoxGadget(#Opt_Check_Heures_18h00, 255, 15+h, 380/4-5, 15, "18h00") : h + 20 : SetGadgetState(#Opt_Check_Heures_18h00, t18h00)
CheckBoxGadget(#Opt_Check_Heures_18h30, 255, 15+h, 380/4-5, 15, "18h30") : h + 20 : SetGadgetState(#Opt_Check_Heures_18h30, t18h30)
;Fichier a Sauver
Frame3DGadget(#Opt_Frame3D_BackUp, 2, 235+10, 400-4, 65,"" ,#PB_Frame3D_Flat)
TextGadget(#Opt_Tx_BackUp, 5, 247+13, 400, 20, "Fichier que vous vouler Sauver :", #PB_Text_Center)
StringGadget(#Opt_BackUp_Edit, 5+2, 260+20, 400-5-80-10-2, 20, PathFile$)
ButtonGadget(#Opt_BackUp_Btn, 400-5-80-2, 260+20, 80, 20, "Parcourir")
;Dossier de sauvegarde
Frame3DGadget(#Opt_Frame3D_SavingPath, 2, 305+10, 400-4, 65,"" ,#PB_Frame3D_Flat)
TextGadget(#Opt_Tx_SavingPath, 5, 320+10, 400, 20, "Dossier de sauvegarde des BackUp :", #PB_Text_Center)
StringGadget(#Opt_SavingPath_Edit, 5+2, 325+25, 400-5-80-10-2, 20, Home$)
ButtonGadget(#Opt_SavingPath_Btn, 400-5-80-2, 325+25, 80, 20, "Parcourir")
;Nom de la BackUp
Frame3DGadget(#Opt_Frame3D_SaveName, 2, 380+10, 400-4, 55,"" ,#PB_Frame3D_Flat)
TextGadget(#Opt_Tx_SaveName, 5, 390+10, 400, 20, "Nom du fichier de la BackUp :", #PB_Text_Center)
StringGadget(#Opt_SavingName_Edit, 5+2, 390+25, 400-5-10, 20, File$)
BtnX = 245 : OkX = 35 : CancelX = 55 : ApplyX = 50 : BtnY = WindowHeight(#Opt_Windows)
ButtonGadget(#Opt_Button_Ok, BtnX, BtnY-22-7, OkX, 22, "Ok") : BtnX = BtnX+OkX+5
ButtonGadget(#Opt_Button_Cancel, BtnX, BtnY-22-7, CancelX, 22, "Cancel") : BtnX = BtnX+CancelX+5
ButtonGadget(#Opt_Button_Apply, BtnX, BtnY-22-7, ApplyX, 22, "Apply")
EndProcedure
Procedure Open_Prefs() ; Ouvre les Prefs. et lis les données , Open the Prefs. and read the datas
OpenPreferences(Home$+"\Prefs.pref")
PreferenceGroup("Folders")
Home$ = ReadPreferenceString("Home" , "D:\Back UP\0. Suivit reception")
PathFile$ = ReadPreferenceString("PathFile" , "G:\Share\Olivier\0. Suivit_Commandes_Receptions.xls")
File$ = ReadPreferenceString("File" , "0. Suivit_Commandes_Receptions.xls")
PreferenceGroup("Hours")
t09h00 = ReadPreferenceInteger("09h00" , 0)
t09h30 = ReadPreferenceInteger("09h30" , 1)
t10h00 = ReadPreferenceInteger("10h00" , 0)
t10h30 = ReadPreferenceInteger("10h30" , 0)
t11h00 = ReadPreferenceInteger("11h00" , 0)
t11h30 = ReadPreferenceInteger("11h30" , 0)
t12h00 = ReadPreferenceInteger("12h00" , 0)
t12h30 = ReadPreferenceInteger("12h30" , 0)
t13h00 = ReadPreferenceInteger("13h00" , 0)
t13h30 = ReadPreferenceInteger("13h30" , 1)
t14h00 = ReadPreferenceInteger("14h00" , 0)
t14h30 = ReadPreferenceInteger("14h30" , 0)
t15h00 = ReadPreferenceInteger("15h00" , 0)
t15h30 = ReadPreferenceInteger("15h30" , 0)
t16h00 = ReadPreferenceInteger("16h00" , 0)
t16h30 = ReadPreferenceInteger("16h30" , 0)
t17h00 = ReadPreferenceInteger("17h00" , 0)
t17h30 = ReadPreferenceInteger("17h30" , 1)
t18h00 = ReadPreferenceInteger("18h00" , 0)
t18h30 = ReadPreferenceInteger("18h30" , 0)
ClosePreferences()
EndProcedure
Procedure Save_Prefs() ; Réécris le fichier Prefs. avec les nouvelles options , Rewrite the Prefs. file with the new datas
If CreatePreferences(Home$+"\Prefs.pref") <> 0
PreferenceGroup("Global")
WritePreferenceString("AppName", "Auto BackUp")
WritePreferenceString("Version", "1.8")
WritePreferenceString("Date" , "06.04.2011")
PreferenceComment("")
PreferenceGroup("Folders")
WritePreferenceString("PathFile" , GetGadgetText(#Opt_BackUp_Edit)) ; Fichier à sauver
WritePreferenceString("Home" , GetGadgetText(#Opt_SavingPath_Edit)) ; Dossier de BackUp
WritePreferenceString("File" , GetGadgetText(#Opt_SavingName_Edit)) ; Nom du fichier de BackUp
PreferenceComment("")
PreferenceGroup("Hours")
WritePreferenceInteger("09h00" , GetGadgetState(#Opt_Check_Heures_09h00)) ; 0 = désactivé
WritePreferenceInteger("09h30" , GetGadgetState(#Opt_Check_Heures_09h30)) ; 1 = activé
WritePreferenceInteger("10h00" , GetGadgetState(#Opt_Check_Heures_10h00)) ;
WritePreferenceInteger("10h30" , GetGadgetState(#Opt_Check_Heures_10h30)) ;
WritePreferenceInteger("11h00" , GetGadgetState(#Opt_Check_Heures_11h00)) ;
WritePreferenceInteger("11h30" , GetGadgetState(#Opt_Check_Heures_11h30)) ;
WritePreferenceInteger("12h00" , GetGadgetState(#Opt_Check_Heures_12h00)) ;
WritePreferenceInteger("12h30" , GetGadgetState(#Opt_Check_Heures_12h30)) ;
WritePreferenceInteger("13h00" , GetGadgetState(#Opt_Check_Heures_13h00)) ;
WritePreferenceInteger("13h30" , GetGadgetState(#Opt_Check_Heures_13h30)) ;
WritePreferenceInteger("14h00" , GetGadgetState(#Opt_Check_Heures_14h00)) ;
WritePreferenceInteger("14h30" , GetGadgetState(#Opt_Check_Heures_14h30)) ;
WritePreferenceInteger("15h00" , GetGadgetState(#Opt_Check_Heures_15h00)) ;
WritePreferenceInteger("15h30" , GetGadgetState(#Opt_Check_Heures_15h30)) ;
WritePreferenceInteger("16h00" , GetGadgetState(#Opt_Check_Heures_16h00)) ;
WritePreferenceInteger("16h30" , GetGadgetState(#Opt_Check_Heures_16h30)) ;
WritePreferenceInteger("17h00" , GetGadgetState(#Opt_Check_Heures_17h00)) ;
WritePreferenceInteger("17h30" , GetGadgetState(#Opt_Check_Heures_17h30)) ;
WritePreferenceInteger("18h00" , GetGadgetState(#Opt_Check_Heures_18h00)) ;
WritePreferenceInteger("18h30" , GetGadgetState(#Opt_Check_Heures_18h30)) ;
ClosePreferences()
Else
MessageRequester("Error", "Impossible de sauver le fichier '"+Home$+"\Prefs.pref'")
EndIf
Open_Prefs() ; Réouvre les Prefs. pour charger les nouvelles options , Re-open the Prefs to load the new options
EndProcedure
;->>>> Initialisation programme <<<<
hwnd = OpenWindow(#Window_0, 0, 0, 500, 220, "Auto BackUp", #Flag) ; Création de la fenêtre de base , Creation of the main window
ButtonGadget(#Btn_BackUP, 50, 50, 400, 80, "Back it Up !!") ; Boutton de BackUp manuelle , Manual BackUp button
ButtonGadget(#Btn_Settings, 50, 15, 80, 25, "Settings") ; Boutton d'accès aux options ,
ButtonGadget(#Btn_Open, 500-80-50, 15, 80, 25, "Open") ; Boutton d'ouverture du dossier de BackUp
ButtonGadget(#Btn_Quit, 500-80-50, 220-25-10, 80, 25, "Quit") ; Boutton de fermeture de la fenêtre (pas du prog.)
TextGadget(#Texte_Copy, 50, 135, 400, 25, "Avancement de la sauvegarde :")
ProgressBarGadget(#ProgressBar_Copy, 50, 160, 400, 15, 0, 100) ; ProgressBar pour l'avancement de la copie
hIconSysTray = GetIcone(hwnd)
AddSysTrayIcon(#SytrayIco, hwnd, hIconSysTray) ; Ajoute l'icône dans le SysTray , Add the icon in the SysTray
SysTrayIconToolTip(#SytrayIco, "|| Auto BackUp ||"+Chr(10)+"Green : Idle"+Chr(10)+"Blue : Opened"+Chr(10)+"Red : Saving")
CreatePopupMenu(#PopUp) ; Crée un menu Pop-Up , Create PopUp menu
MenuItem(#PopUp_Reduire, "Réduire...") ; Cache la fenêtre dans SysTray , Hide the main window in the SysTray
MenuItem(#PopUp_Agrandir, "Agrandir...") ; Agrandis la fenêtre , Show main window
MenuBar() ; Ajoute un séparateur , add a separator
MenuItem(#PopUp_Quiter, "Quitter") ; Quite le programme , Quit the program
DisableMenuItem(#PopUp, #PopUp_Reduire, 1) ; Menu inactif , Item disabled
DisableMenuItem(#PopUp, #PopUp_Agrandir, 0) ; Menu actif , Item enabled
; If Home$ = "" ; Test si le chemin de BackUp , Test if the BackUp folder is set
; Home$ = PathRequester("Chemin de sauvegarde...", "C:\") ; est réglé, sinon demande à , if not ask the user where to set it
; EndIf ; l'utilisateur de le sélectionner
OpenPreferences(Home$ + "\Prefs.pref") ; Ouvre le fichier de préférences, Open the Prefs. file
PreferenceGroup("Folders")
Home$ = ReadPreferenceString("Home" , "D:\Back UP\0. Suivit reception")
PathFile$ = ReadPreferenceString("PathFile" , "G:\Share\Olivier\0. Suivit_Commandes_Receptions.xls")
File$ = ReadPreferenceString("File" , "0. Suivit_Commandes_Receptions.xls")
ClosePreferences()
;->>>> Boucle principale <<<<
Thread_Time_Tester = CreateThread(@Time_Tester(), 60000) ; Lance un thread qui vérifie l'heure , Open a Thread to check the time
Quit = 0
Repeat
Select EventWindow()
;: Fenêtre principale ::
Case #Window_0
Select WaitWindowEvent()
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_RightClick : DisplayPopupMenu(#PopUp, hwnd) ; Affiche le menu PopUp , Show PopUp Menu
Case #PB_EventType_LeftDoubleClick : Minimize(0) ; Affiche la fenêtre , Show main window
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case #PopUp_Reduire : Minimize(1) ; Cache la fanêtre dans le SysTray , Hide in the SysTray
Case #PopUp_Agrandir : Minimize(0) ; Affiche la fenêtre , Show main window
Case #PopUp_Quiter : Quit = 1 : ClosePreferences()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_BackUP : BackUp() ; Lance le BackUp , Start a manual BackUp
Case #Btn_Settings: Options() ; Ouvre les options , Open the options window
Case #Btn_Open : RunProgram(Home$) ; Ouvre le dossier de BackUp , Open the BackUp folder
Case #Btn_Quit : SetGadgetState(#ProgressBar_Copy, 0) : Minimize(1) ; Cache la fanêtre dans le SysTray , Hide in the SysTray
EndSelect
Case #PB_Event_CloseWindow : SetGadgetState(#ProgressBar_Copy, 0) : Minimize(1)
EndSelect
;: Fenêtre des Options ::
Case #Opt_Windows
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Opt_SavingPath_Btn
Home$ = PathRequester("Dossier de la BackUp", "D:\Back UP\0. Suivit reception")
SetGadgetText(#Opt_SavingPath_Edit, Home$)
Case #Opt_BackUp_Btn
PathFile$ = OpenFileRequester("Fichier à Sauver", "G:\Share\Olivier\0. Suivit_Commandes_Receptions.xls", "Tous les fichiers [*.*]|*.*", 0)
SetGadgetText(#Opt_BackUp_Edit, PathFile$)
Case #Opt_Button_Ok : Save_Prefs() : CloseWindow(#Opt_Windows) ; Sauve et ferme les options , Save and close the options
Case #Opt_Button_Cancel : CloseWindow(#Opt_Windows) ; Annule et ferme les options , Cancel and close the options
Case #Opt_Button_Apply : Save_Prefs() ; Sauve les options sans fermer , Save the options without closing
EndSelect
Case #PB_Event_CloseWindow : CloseWindow(#Opt_Windows) ; Ferme la fenêtre des options , Close the options window
EndSelect
EndSelect
Until Quit = 1
End
;->>>> Datas <<<<
DataSection
Open : IncludeBinary "E:\PureBasic\_Datas\_Auto_BackUp\Open.png" ; Icone du prog quand ouvert , Ico when open
Idle : IncludeBinary "E:\PureBasic\_Datas\_Auto_BackUp\Idle.png" ; Icone du prog en temps normal , Ico when idle
Saving : IncludeBinary "E:\PureBasic\_Datas\_Auto_BackUp\Saving.png" ; Icone du prog pendant la BackUp , Ico whan saving
EndDataSection

En espérant que ça serve a quelqu'un un jour

EDIT : Voici un pack les image ainsi que l'ico a attribuer au prog dans PB :
http://www.filesonic.com/file/854956321/_Auto_BackUp.7z
et pour vous rassurer :
http://www.virustotal.com/file-scan/rep ... 1303886969