|
| [WD12] synchronisation de l'horloge dans un réseau local |
| Iniciado por vincemeg, 31,oct. 2008 08:16 - 8 respuestas |
| |
| | | |
|
| |
| Publicado el 31,octubre 2008 - 08:16 |
| Comment à partir de mon application WINDEV synchroniser l'horloge de tous les postes de mon réseau local? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 09:44 |
Bonjour, A partir de Windev je ne sais pas, mais le protocole NTP le fait très bien.
Frédéric. "Vincent de Paul" <vincemeg@hotmail.com> a écrit dans le message de news:51a3e192acedbdf50175614c42ce8fe3@news.pcsoft...
Comment à partir de mon application WINDEV synchroniser l'horloge de tous
les postes de mon réseau local? > |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 10:31 |
Salut,
"Vincent de Paul" <vincemeg@hotmail.com> a écrit dans le message de news:51a3e192acedbdf50175614c42ce8fe3@news.pcsoft...
Comment à partir de mon application WINDEV synchroniser l'horloge de tous les postes de mon réseau local?
Tu peux utiliser la commande net time dans une console "DOS" .. pour de l'aide sur cette commande : tapes net time /? dans une console ... Tu peux lancer un fichier .BAT ou .CMD (selon l'OS) contenant cette commande et l'heure de ton poste de travail sera synchronisé avec l'heure du serveur que tu auras indiqué dans la commande net time.
En espérant t'avoir aidé !
-- Marcel Berman Président de Be-Dev.be (www.be-dev.be) (Belgique) Membre du CA de Wind'Asso (www.windasso.org) (France) Be-Dev.be et Wind'Asso sont des associations d'utilisateurs des produits PC-Soft |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 11:50 |
Bonjour,
J'ai un code qui date un peu, mais que tu peux adapter :
Erreur est une chaine Si PAS fg_SynchroHeure(gServeur, sErreur) ALORS //Erreur("Impossible de mettre à l'heure, raison : "+sErreur) SINON //Info("Ce poste a été mis à l'heure") FIN
FONCTION fg_SynchroHeure(sNomServeur="", sErr="")
bRes est un booléen slNomServeur est une chaîne slNomServeur = SansEspace(sNomServeur) SI slNomServeur<>"" ALORS
SI slNomServeur[[A 2]]<>"\\" ALORS slNomServeur = "\\" + slNomServeur FIN
SI SysVersionWindows(sysVersionPlateForme)<>"NT" ALORS
SI slNomServeur~="" ALORS slNomServeur="\\"+NetNomMachine() sFichierScript est une chaîne = fRépertoireTemp()+"SYHtmp.BAT" sFichierRes est une chaîne = fFichierTemp("SYH") sResu est une chaîne eNumfic est un entier = fOuvre(sFichierScript, foCréation+foEcriture) SI eNumfic<>-1 ALORS SI fEcrit(eNumfic,"NET TIME "+slNomServeur+" /SET /Y >"+sFichierRes)<>-1 ALORS bRes = Vrai FIN fFerme(eNumfic) SI bRes ALORS SI DDELance(sFichierScript,DDEIconise,Vrai) ALORS eNumfic= fOuvre(sFichierRes) SI eNumfic<>-1 ALORS sResu=fLit(eNumfic,1024) fFerme(eNumfic) FIN FIN fSupprime(sFichierScript) fSupprime(sFichierRes)
FIN bRes = Faux SI sResu~="" ALORS sErr = "Echec de la mise à l'heure, le serveur "+slNomServeur+... " est peut-être indisponible." SINON bRes = Vrai FIN SINON sErr = "Echec de la mise à l'heure, impossible de créer le fichier temporaire." FIN SINON eRes est un entier ePointeurBuffer est un entier teNomServeur est un tableau de 255 entiers courts c est un entier strTIME_OF_DAY_INFO est une structure tod_elapsedt est un entier tod_msecsest un entier tod_hoursest un entier tod_minsest un entier tod_secsest un entier tod_hundsest un entier tod_timezoneest un entier tod_tintervalest un entier tod_dayest un entier tod_monthest un entier tod_yearest un entier tod_weekdayest un entier FIN strSYSTEMTIME est une structure wYearest un entier sur 2 octets sans signe wMonthest un entier sur 2 octets sans signe wDayOfWeekest un entier sur 2 octets sans signe wDayest un entier sur 2 octets sans signe wHourest un entier sur 2 octets sans signe wMinuteest un entier sur 2 octets sans signe wSecondest un entier sur 2 octets sans signe wMillisecondsest un entier sur 2 octets sans signe FIN stLocSTest une strSYSTEMTIME stServeurTODinfoest une strTIME_OF_DAY_INFO
POUR c=1 A Taille(slNomServeur) teNomServeur[(c*2)-1] = Asc(slNomServeur[[c]]) teNomServeur[c*2] = 0 FIN teNomServeur[(c*2)+1]= 0 SI slNomServeur~="" ALORS slNomServeur=" le poste local" eRes = AppelDLL32("netapi32","NetRemoteTOD", &teNomServeur,&ePointeurBuffer)
SI eRes = 0 ALORS SI ePointeurBuffer<>0 ALORS Transfert(&stServeurTODinfo, ePointeurBuffer, Dimension(stServeurTODinfo))
stLocST:wHour= stServeurTODinfo:tod_hours stLocST:wMinute= stServeurTODinfo:tod_mins stLocST:wSecond= stServeurTODinfo:tod_secs stLocST:wDay= stServeurTODinfo:tod_day stLocST:wMonth= stServeurTODinfo:tod_month stLocST:wYear= stServeurTODinfo:tod_year SI AppelDLL32("kernel32", "SetSystemTime", &stLocST)<>0 ALORS bRes = Vrai SINON sErr = "Echec lors de la mise à jour de l'heure sur le poste local,"+... "vous ne disposez probablement pas des droits suffisants pour cette opération." FIN SINON sErr="Echec de la récupération de l'heure sur "+slNomServeur+... ", pointeur nul" FIN SINON sErr="Echec de la récupération de l'heure sur "+slNomServeur+... ", échec de la fonction NetRemoteTOD : erreur n° "+eRes FIN
AppelDLL32("netapi32", "NetApiBufferFree", ePointeurBuffer) FIN RENVOYER bRes
PS : merci à Romain Petit, l'auteur de la procédure |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 14:30 |
Bonjour Vincent...
Regarde dans les composants de WinDev 12... j'en ai vu un qui fait ca pas plus tard que hier soir en cherchant autre chose... Par contre, je ne sais pas s'il vient d'une LST ou s'il est d'origine
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
Vincent de Paul wrote:
Comment à partir de mon application WINDEV synchroniser l'horloge de tous les postes de mon réseau local?
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 16:32 |
Comme il se trouve que je travaillais aussi sur le sujet, et grâce aux informations données par Marcel, je vous donne la solution que j'ai retenu
Pour résoudre le problème des comptes limités, j'utilise l'utilitaire gratuit CPAU (copié dans le répértoire windows ou bon vous semble) Normalement, j'indique comme login et psw ceux de l'administrateur du poste Hors dans ce cas, il faut indiquer ceux de l'administrateur du serveur
Ip_serveur peut être soit une adresse ip, soit le nom de l'ordinateur de référence
LanceAppli("c:\windows\cpau.exe -u "+login+" -p "+psw+" -ex ""net time \\"+ip_serveur+" /SET /yes"" -lwp -hide >nul",exeInactif) |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2008 - 17:30 |
Vincent de Paul a écrit :
Comment à partir de mon application WINDEV synchroniser l'horloge de tous les postes de mon réseau local?
Bonjour,
si les postes sont sous 2000, XP, Vista le plus simple est de laisser faire windows qui intègre un service pour le faire.
Faire une recherche dans l'aide Windows "Synchroniser heure", ou sur google. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,noviembre 2008 - 17:16 |
si les postes sont sous 2000, XP, Vista le plus simple est de laisser faire windows qui intègre un service pour le faire.
Ca ne le fait qu'une fois par semaine il me semble, donc pas suffisant dans mon cas
> Faire une recherche dans l'aide Windows "Synchroniser heure", ou sur google.
Ce genre de post ne fait pas avancer le chmilblic Ce qui est interessant, c'est des exemples qui marchent, pour éviter de chercher indéfiniment |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,mayo 2020 - 21:59 |
| Ne fonctionne plus en 2020 à cause de l'UAC qui demande à avoir des privilèges supérieures. Dommage |
| |
| |
| | | |
|
| | | | |
| | |
|