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
» Logiciel de planétarium.
Synchronisation de deux PC Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Synchronisation de deux PC Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Synchronisation de deux PC Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Synchronisation de deux PC Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Synchronisation de deux PC Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Synchronisation de deux PC Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Synchronisation de deux PC Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Synchronisation de deux PC Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Synchronisation de deux PC Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Synchronisation de deux PC Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Synchronisation de deux PC Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Synchronisation de deux PC Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Synchronisation de deux PC Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Synchronisation de deux PC Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Synchronisation de deux PC Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Synchronisation de deux PC

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
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 : 12331
Age : 75
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
» POINT D'INTERSECTION DE DEUX DROITES
» Déplacement de deux sprites
» 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: