FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Je teste PANORAMIC V 1 beta 1
Synchronisation de deux PC Emptypar papydall Aujourd'hui à 2:48

» bouton dans autre form que 0
Synchronisation de deux PC Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
Synchronisation de deux PC Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
Synchronisation de deux PC Emptypar Klaus Hier à 10:23

» PANORAMIC V 1
Synchronisation de deux PC Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Synchronisation de deux PC Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Synchronisation de deux PC Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Synchronisation de deux PC Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Synchronisation de deux PC Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Synchronisation de deux PC Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Synchronisation de deux PC Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Synchronisation de deux PC Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Synchronisation de deux PC Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Synchronisation de deux PC Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Synchronisation de deux PC Emptypar jjn4 Lun 22 Avr 2024 - 13:43

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

 

 Synchronisation de deux PC

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Synchronisation de deux PC Empty
MessageSujet: Synchronisation de deux PC   Synchronisation de deux PC EmptyMar 9 Nov 2010 - 13:52

J'ai un pc de bureau sur lequel je travaille (?) habituellement. Et je suis amené à m'absenter plusieurs jours d'affilée, n'importe quand, dans une autre résidence. Pour ça j'ai acheté un pc portable (eh oui, je suis très riche Very Happy mais on trouve de bonnes affaires en étant patient, les prix on bien baissé).
Le problème est que j'ai envie de continuer sur le portable ce qui était en cours sur le pc de bureau, notamment des programmes en cours de mise au point, et au retour de faire le même chose sur le pc fixe.

Je me suis donc écrit un petit programme, que j'ai appelé en toute modestie ( Very Happy ) Synchro, qui a les fonctions suivantes:
- sauvegarder depuis le pc fixe sur une clé usb dédiée le contenu d'un certain nombre de répertoires
- restaurer le contenu de la clé usb sur le pc portable
- sauvegarder les mêmes répertoires depuis le portable sur la clé
- restaurer sur le fixe le contenu de la clé.

Ce programme fait appel à deux ressources externes:
- GVL.dll, de Klaus, qui permet de connaître le nom des volumes montés (pour identifier la clé usb ou le pc)
- Robocopy.exe, outil de copie intelligente de Microsoft (gratuit évidemment).

Il y a un certain nombre de paramètres personnels à modifier en début de programme:
- le nom (Label) de la clé usb utilisée, clé de taille suffisante pour contenir la sauvegarde
- les noms des disques durs (C:) des deux pc fixe et portable (au besoin leur en donner un, avec la commande Label)
- la liste (DATAs) des noms des répertoires (avec leurs sous-répertoires) à sauvegarder
- le chemin de robocopy.exe et le chemin de la dll de Klaus.

Ca dépend du nombre et du contenu des répertoires, mais la première sauvegarde peut être assez longue (les clés usb ne sont pas des bêtes de course). Mais par la suite robocopy ne copie que ce qui a été ajouté ou modifié et ça peut aller très vite.
Il y a même dans robocopy une option 'miroir' qui reproduit l'image exacte du répertoire d'origine, avec des suppressions éventuelles, mais je ne l'ai pas utilisée: voir les options avec robocopy.exe /?.

Code:
' Sauvegardes PC->clé, clé->PC, Portable->clé, clé->Portable
DIM cle$, Robo$, fm$, fb$, w0, h0, lb, hb, xb, yb, nrep, i%, a$, b$, vol$
DIM pc$, r1$, r2$, pcf$, pcp$, c$, evo$, lu$, lc$, v$, tb, tr, dllvol$
DIM rep$(30)
LABEL PC2Cle, Cle2Pc, Portable2Cle, Cle2Portable, Volumes, Sauve, Fin, Qu, rr
' Liste des répertoires à sauvegarder ou restaurer
DATA "Comptes", "Doc", "Donnees", "Langages\FreeBasic\SOURCES"
DATA "Langages\PANORAMIC","MATERIEL", "MENUS", "OUTILS"
DATA "Progra~1\Panora~1", "TEXTES", "UTIL"
DATA "F"

cle$ = "DANELEC_8G": ' label de la clé de sauvegarde
pcf$ = "ACER_JEAN": ' nom du pc fixe (HD C:)
pcp$ = "COMPAQ_JEAN": ' nom du pc portable (HD C:)
Robo$ = "C:\UTIL\ROBOCOPY.exe "
dllvol$ = "C:\Langages\Panoramic\DLL\GVL.dll": ' DLL Klaus
fb$ = "C:\BAT\SV.BAT "

pcp$ = " nom."

nrep = 0: READ a$
WHILE a$ <> "F"
    nrep = nrep + 1: rep$(nrep) = a$
    READ a$
END_WHILE

w0 = 320: h0 = 240
WIDTH 0,w0: HEIGHT 0,h0: CAPTION 0, " - SYNCHRO PC/PORTABLE -"
COLOR 0,220,255,255
lb = 130
lb = (w0-40)/2
hb = 24
xb = 10: yb = 55

BUTTON 1: LEFT 1, xb: TOP 1, yb: WIDTH 1, lb: HEIGHT 1, hb
CAPTION 1, "PC -> Clé"
ON_CLICK 1, PC2Cle
BUTTON 2: LEFT 2, xb: TOP 2, yb+hb+5: WIDTH 2, lb: HEIGHT 2, hb
CAPTION 2, "Clé -> PC"
ON_CLICK 2, Cle2PC
BUTTON 3: LEFT 3, xb: TOP 3, yb+2*hb+10: WIDTH 3, lb: HEIGHT 3, hb
CAPTION 3, "PORTABLE -> Clé"
ON_CLICK 3, Portable2Cle
BUTTON 4: LEFT 4, xb: TOP 4, yb+3*hb+15: WIDTH 4, lb: HEIGHT 4, hb
CAPTION 4, "Clé -> PORTABLE"
ON_CLICK 4, Cle2Portable
Qu:
BUTTON 5: LEFT 5, xb: TOP 5, yb+4*hb+20: WIDTH 5, lb: HEIGHT 5, hb
CAPTION 5, "Quitter"
ON_CLICK 5, Fin
ALPHA 10: TOP 10, yb: LEFT 10, xb+lb+5: WIDTH 10, lb: HEIGHT 10, 5*hb+20
COLOR 10, 255,255,255
ALPHA 11: TOP 11, 5: LEFT 11, 40: WIDTH 11, w0-80: HEIGHT 11, 20
ALPHA 12: TOP 12, 28: LEFT 12, 40: WIDTH 12, w0-80: HEIGHT 12, 20
COLOR 11, 255,255,255: COLOR 12, 255,255,255
FONT_SIZE 0, 10: FONT_BOLD 0
PRINT_LOCATE 10, 5: PRINT "PC:"
PRINT_LOCATE 10, 28: PRINT "Clé:"
GOSUB Volumes
IF vol$ = ""
    a$ = "Clé de sauvegarde non montée !" + CHR$(10) + CHR$(10)
    a$ = a$ + "Monter la clé " + cle$ + ", puis relancer la sauvegarde."
    MESSAGE a$
    GOTO Fin
END_IF
a$ =  " C:  " + pc$ + "            ("+lu$+"% libre) "
CAPTION 11, a$
a$ = " " + vol$ + "  " + cle$ + "          ("+lc$+"% libre) "
CAPTION 12, a$
END
Fin:
TERMINATE
' =============================================================================

PC2Cle:
IF pc$ <> pcf$
    a$ = "PC fixe non trouvé !" + CHR$(10) + CHR$(10)
    a$ = a$ + " Abandon."
    MESSAGE a$
    TERMINATE
END_IF
r1$ = "C:": r2$ = vol$ + "": b$ = "PC -> Clé"
GOSUB Sauve
RETURN

Cle2PC:
IF pc$ <> pcf$
    a$ = "PC fixe non trouvé !" + CHR$(10) + CHR$(10)
    a$ = a$ + " Abandon."
    MESSAGE a$
    TERMINATE
END_IF
r1$ = vol$ + "": r2$ = "C:": b$ = "Clé -> PC"
GOSUB Sauve
RETURN

Portable2Cle:
IF pc$ <> pcp$
    a$ = "PC portable non trouvé !" + CHR$(10) + CHR$(10)
    a$ = a$ + " Abandon."
    MESSAGE a$
    TERMINATE
END_IF
r1$ = "C:": r2$ = vol$ + "": b$ = "Portable -> Clé"
GOSUB Sauve
RETURN

Cle2Portable:
IF pc$ <> pcp$
    a$ = "PC portable non trouvé !" + CHR$(10) + CHR$(10)
    a$ = a$ + " Abandon."
    MESSAGE a$
    TERMINATE
END_IF
r1$ = vol$ + "": r2$ = "C:": b$ = "Clé -> Portable"
GOSUB Sauve
RETURN

Volumes:
' Liste des volumes montés et actifs avec leur nom
DLL_ON dllvol$
i% = DLL_CALL0("GetVolumeList")
DLL_OFF
v$ = CLIPBOARD_STRING_PASTE$
rr:
i% = INSTR(v$, CHR$(10))
IF i% > 0
    a$ = LEFT$(v$, i%-1): v$ = MID$(v$, i%+1, 1000)
    c$ = MID$(a$, 3, 1): IF (ASC(c$) < 65 OR ASC(c$) > 90) THEN GOTO rr
    b$ = RTRIM$(MID$(a$, 60, 100))
    IF MID$(a$, 19, 1) = " "
        tb = VAL(MID$(a$, 20, 13)): tr = VAL(MID$(a$, 37, 13))
    END_IF
    IF c$ = "C" THEN pc$ = RTRIM$(MID$(a$, 60,100)): lu$ = STR$(INT(100*tr/tb))
    IF b$ <> cle$ THEN GOTO rr
    vol$ = c$ + ":": lc$ = STR$(INT(100*tr/tb))
END_IF
RETURN

Sauve:
' création et exécution du fichier batch de sauvegarde
FILE_OPEN_WRITE 1, fb$
    FILE_WRITELN 1, "@echo off"
    FOR i% = 1 TO nrep
        a$ = r1$ + rep$(i%) + " " + r2$ + rep$(i%) + " /S /R:0 /NP": ' pas de fichier log
        FILE_WRITELN 1, Robo$ + a$
    NEXT i%
FILE_CLOSE 1
EXECUTE_WAIT fb$
FONT_SIZE 10, 12: FONT_BOLD 10
CAPTION 10, "Sauvegarde" + CHR$(10) + b$ + CHR$(10) + " terminée !"
RETURN
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Synchronisation de deux PC Empty
MessageSujet: Re: Synchronisation de deux PC   Synchronisation de deux PC EmptyMar 9 Nov 2010 - 22:26

Tu as une fonction de windows xp qui fait le lien entre portable et fixe déjà, mais je ne me souviens pas du nom.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Synchronisation de deux PC Empty
MessageSujet: Re: Synchronisation de deux PC   Synchronisation de deux PC EmptyMar 9 Nov 2010 - 23:45

Très joli, merci pour cette publication rapide d'un outil qui met une de mes DLL en application ! Cela me fait plaisir et j'espère que cela donnera des idées à d'autres...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Synchronisation de deux PC Empty
MessageSujet: Re: Synchronisation de deux PC   Synchronisation de deux PC Empty

Revenir en haut Aller en bas
 
Synchronisation de deux PC
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Les deux lignes
» Une curiosité à deux points!
» POINT D'INTERSECTION DE DEUX DROITES
» Synchroniser deux LISTs
» deux petites subs

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: