VB6 - Comment modifier l'heure de windows svp?

Résolu
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006 - 18 août 2005 à 17:59
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006 - 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 :)

13 réponses

scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
18 août 2005 à 18:26
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.
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 18:37
plus simple:



Time$ = "18:40:00"

Date$ = "18/08/2005"

Daniel
3
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 août 2005 à 18:49
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 !
3
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
18 août 2005 à 19:26
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 !! :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
18 août 2005 à 19:47
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
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 19:57
Dim dt As Date

dt = "09:10:00 PM"

MsgBox dt


Daniel
0
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
18 août 2005 à 20:22
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
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 20:27
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
0
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
18 août 2005 à 20:37
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
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 20:49
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
0
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
18 août 2005 à 20:55
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" :(
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 août 2005 à 22:39
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
0
cs_Norin Messages postés 16 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 5 juin 2006
19 août 2005 à 15:58
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
0
Rejoignez-nous