VB6 - Comment modifier l'heure de windows svp? [Résolu]

cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 17:59 - Dernière réponse : cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention
- 19 août 2005 à 15:58
Bonjour, je travail présentement sur un projet en VB6 qui aurait pour but de modifier l'heure de windows [celle en bas à droite] selon l'heure d'un autre ordinateur.

Pour se faire j'avais penser faire un programme qui, avec winsock, lierait deux programmes, un sur le serveur qui possèderait l'heure de l'ordinateur dans un label et un autre qui recevrait cette heure et mettrait à jour l'heure de windows pour celle-ci.

Alors ma question est, une fois le contenu du label reçu, comment puis-je modifier l'heure du windows pour celui reçu par le programme?

Merci d'avance.
PS: Si vous avez des suggestions plus efficaces pour mon projet, n'hésitez pas :)
Afficher la suite 

13 réponses

Meilleure réponse
scortex84 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 18 août 2005 à 18:26
3
Merci
Hello,

il faut utiliser une bonne vieille API :


Private Declare Function SetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As Integer



Private
Structure SYSTEMTIME

Dim wYear
As
Short
Dim wMonth
As
Short
Dim wDayOfWeek
As
Short
Dim wDay
As
Short
Dim wHour
As
Short
Dim wMinute
As
Short
Dim wSecond
As
Short
Dim wMilliseconds
As
Short
End
Structure


Dans une fonction :

Dim ST
As SYSTEMTIME


With ST
.wYear = Year(dats)
.wMonth = Month(dats)
.wDay = VB.Day(dats)
.wHour = Hour(dats)
.wMinute = Minute(dats)
.wSecond = Second(dats)

End
With


Call SetLocalTime(ST)




Et voilà ! Je pense que c'est clair, l'API reçoit en parametre une structure contenant toutes les infos.
Il existe une autre API du même type mais qui reçoit l'heure GMT et tient compte du décallage horaire de la zone déclarée dans windows (je ne me souviens plus le nom de l'API).

Seb.

Merci scortex84 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 août 2005 à 18:37
3
Merci
plus simple:



Time$ = "18:40:00"

Date$ = "18/08/2005"

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Meilleure réponse
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 18 août 2005 à 18:49
3
Merci
Violent Ken

salut !


C'est en effet plus simple, mais pour la date, c'est plutôt Date$ = "08-18-2005", parce que sinon cà bug !

Merci violent_ken 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 19:26
0
Merci
Un gros merci à tout le monde, ça a L'AIR (moui pcq selon mon expérience faut jamais se fier aux apparences :)) de marcher parfaitement, alors merci encore tous !! :)
cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 19:47
0
Merci
Erf, mon problème est maintenant de convertir les heures du style 09:10:00 PM en 21:10:00 sans toucher aux paramètres régionaux :S
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 août 2005 à 19:57
0
Merci
Dim dt As Date

dt = "09:10:00 PM"

MsgBox dt


Daniel
cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 20:22
0
Merci
Hmm, je veux avoir le format sans AM/PM lol... J'ai réussi en jouant avec format(dateActuelle, "h:m:s") en string mais lorsque je viens pour le mettre dans time$ il plante, disant que les valeurs ne sont pas adéquates
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 août 2005 à 20:27
0
Merci
ben tu l'as ta date sans AM/PM



Dim dt1 As Date

Dim dt2 As Date

Dim s As String



s = "09:10:00" & " PM"

dt1 = s

dt2 = "21:10:00"

If dt1 = dt2 Then MsgBox "oui"

s = dt1

MsgBox s


Daniel
cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 20:37
0
Merci
Mais comment je peux faire pour que ça soit toujours ainsi?


Je m'explique, la j'ai mon serveur qui envoi des informations à mon client. Ces informations sont en fait:


Dim dateActuelle as date


dateActuelle = now


winsock1.sendData = dateActuelle

Alors la dateActuelle de l'ordinateur est donc envoyé à un autre ordinateur opérant le programme client. Maintenant, le but du programme est de faire que ce client voit la date et l'heure de son ordinateur mis à jour afin d'avoir les mêmes que celui du serveur. Mais pour ça, je dois couper mon dateActuelle en heure et jour afin de pouvoir utiliser le $time and $date. Mais les méthodes que j'utilise me donnent toujours que le type de données est incompatible alors, comment dois-je m'y prendre?

Merci d'avance
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 août 2005 à 20:49
0
Merci
et c'est quoi cette histoire d' AM/PM







Dim Ladate As String

Dim letemps As String

Dim dateActuelle As Date

dateActuelle = Now



Ladate = Format$(dateActuelle, "mm-dd-yyyy")

letemps = Format$(dateActuelle, "Long Time")

MsgBox "la date seule: " & Ladate

MsgBox "l'heure seule: " & letemps



Date$ = Ladate

Time$ = Letemps

Daniel
cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 18 août 2005 à 20:55
0
Merci
Erf, marche toujours pas... Le truc de AM/PM c'est à cause des paramètres régionaux... Et ça je dois programmer avec :S

Mais il persiste avec le fait que "Type-declaration character does not match declared data type" :(
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 août 2005 à 22:39
0
Merci
j'ai pas cette erreur

il fait ça sur quelle Ligne ?



Dim Ladate As String


Dim letemps As String


Dim dateActuelle As Date





' tout dépend comment arrive la date ????

dateActuelle = Now


' "18/08/2005 21:35:00"

' ou

' "18/08/2005 09:35:00 PM"




Ladate = Format$(dateActuelle, "MM-DD-YYYY")


' et comment la mettre en sortie


' soit en format 24h

letemps = Format$(dateActuelle, "HH:NN:SS")

' ou en format 12h

letemps = Format$(dateActuelle, "HH:NN:SS AM/PM")





MsgBox "la date: " & Ladate


MsgBox "l'heure: " & letemps


Daniel
cs_Norin 17 Messages postés vendredi 26 novembre 2004Date d'inscription 5 juin 2006 Dernière intervention - 19 août 2005 à 15:58
0
Merci
Arf, finalement je crois que l'erreur était inexistante puisque j'ai fais un nouveau projet avec le même code et tout marchait nickel :\

Merci tous

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.