Changer l'heure de l'horloge windows avec un vbscript

maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006 - 22 juil. 2006 à 01:20
maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006 - 25 juil. 2006 à 00:22
Bonjour à tous ,

Comme le sujet l'indique je voudrais changer l'heure de l'horloge windows ou du systeme avec un vbscript.

J'ai longtemps chercher sur Internet avec Google mais sans résultat. Je pense avoir utilisé tous les mots clé possible c'est pour cela que j'ai besoin de votre aide.

J'ai essayer ce genre de code:  Time = "00:00:00" ainsi que Now , Hours(Now) etc...   Mais malheuresement cela ne fonctionne pas sous vbscript.

Merci à tous pour votre aide.

Maxcode

10 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
22 juil. 2006 à 10:46
Salut, essaie avec l'api SetSystemTime.
0
maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006
22 juil. 2006 à 15:51
Salut ,

Merci pour ta réponse. Comment utiliser SetSystemTime ? Y a t-il une syntaxe ?

Merci d'avance
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
22 juil. 2006 à 16:53
Description (in english) et exemples à cette url :

http://www.allapi.net/apilist/SetSystemTime.shtml

Mais je ne sais pas si ça fonctionne en vbscript. Je te laisse tester.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 juil. 2006 à 22:00
Salut

Et t'as essayé avec "= Date" ?

Sinon, pour l'Api, la voici avec un peu de français :




Fonction SetSystemTime



Declare Function

SetSystemTime

Lib

"kernel32" ( _
                 lpSystemTime

As SYSTEMTIME

)

As Long



Versions :

. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui






Description :

Cette fonction permet de définir l'heure système du PC. L'heure locale se trouve aussi affectée (recalcul de l'heure locale en fonction du décalage GMT).
lpSystemTime est une structure de type SYSTEMTIME contenant la nouvelle heure système.
La fonction retourne Vrai si l'opération s'est bien passée, sinon Faux.



Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
End Type





Pas d'exemple disponible...





@++

  Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce sondage
Merci de prendre le temps de lire le Règlement CS


    =ZSzeb008_ZNxdm414YYFR
0

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

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
22 juil. 2006 à 22:31
 Bonjour,

Pour utiliser l'Api "SetSystemTime" en vbs(wsh), il faut passer par une
macro via Excel.
Exemple:
Set sh = WScript.CreateObject("WScript.Shell")
on error resume next
sh.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\accessVBOM",1,"REG_DWORD"
on error goto 0




Set exl = WScript.CreateObject("excel.Application")
exl.Visible = false
set fichxl=exl.workbooks.add





Set mdle = fichxl.VBProject.VBComponents.Add(1)





num=0
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function GetDC Lib ""user32"" (ByVal hwnd As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function TextOut Lib ""gdi32"" Alias ""TextOutA"" ( _ "
num=num+1:mdle.CodeModule.InsertLines num, "     ByVal hdc As Long, _
...etc...

jean-marc
0
maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006
23 juil. 2006 à 00:51
Salut ,

Merci à tous , je vais tester tous ça .

Sinon j'ai déja tester "Date=" ou "Time =" mais cela ne fonctionne pas. Il ne veut pas affecter la valeur.

Pour l'api quand je met le code:

Declare Function SetSystemTimeLib
"kernel32" ( _
                 lpSystemTime As SYSTEMTIME)As Long

Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
End Type

Dim lpSystemTime
As SYSTEMTIME

lpSystemTime.wHour = 0
lpSystemTime.wMinute = 0
lpSystemTime.wSecond = 0
lpSystemTime.wMilliseconds = 0

SetSystemTime lpSystemTime

'Fin du code

J'ai une erreur:

Ligne : 1
Caract : 9
Erreur : Erreur de syntaxe

Si vous savez d'ou vient l'erreur...

Merci JMO pour ta réponse. Est-ce qu'il est possible de passer autrement que par une macro excel pour utiliser l'api en vbs.

Sinon si ce n'est pas possible ce n'est pas grave je resterai au bon vieux bat.

En effet il suffit juste de mettre cette ligne pour changer l'heure:

Time = 00:00

et celle là pour la date:

Date = 01/01/01

et aprés on enregistre le fichier avec l'extension .bat

J'aurai préféré que tout soit dans un fichier vbs mais bon aprés tout je peux aussi faire ça:

Set w = CreateObject("wscript.shell")

w.Run ("le fichier.bat")

Merci encore à tous !

Maxcode
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juil. 2006 à 08:03
Salut,

sinon essai ça :

var MaDate = new Date(2006, 0, 1, 08, 00, 00)
' exemple pour le 1er janvier 2006 à 08h00 et 0 sec
______________________________________________________________________________
'descriptif : new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])

* year Le millésime complet, par exemple 1976 (et non 76).

* month Le mois, représenté par un entier compris entre 0 et 11 (janvier à décembre).

* date La date, représentée par un entier compris entre 1 et 31.

* hours Facultatif. Doit être fourni si minutes est spécifié. Un entier compris entre 0 et 23 (minuit à 23 heures) indiquant l'heure.

* minutes Facultatif. Doit être fourni si seconds est spécifié. Un entier compris entre 0 et 59 indiquant les minutes.

* seconds Facultatif. Doit être fourni si milliseconds est spécifié. Un entier compris entre 0 et 59 indiquant les secondes.
______________________________________________________________________________

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006
23 juil. 2006 à 19:18
Salut ,


Quand je met le code :


var MaDate = new Date(2006,0,1,20, 00, 00)

' Fin du code

J'ai cette erreur:

Ligne : 1
Caract : 22
Erreur : Fin d'instruction attendue

Il manque peut être un "As" ou des "( )"

Alors j'ai essayé d'ajouter : "As SetSystemTime" mais ça ne doit pas faire partis de cette Api là.
J'ai essayé aussi d'enlever "var" mais ça ne change rien puisque cela ne fait que de déclarer une variable. (je crois que c'est variant.) 

Merci encore.

P.S Sinon si tu ne trouve pas, c'est pas grave. Il y a toujours l'autre solution. 

Maxcode
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juil. 2006 à 19:27
Salut,



alors essai avec des guillemets pour voir si c'est bon :




var MaDate = new Date("2006", "0", "1", "20", "00", "00")



@++

  Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce
sondage


Merci de prendre le temps de lire
le Règlement CS




    http://www.smileycentral.com/?partner=ZSzeb008_ZNxdm414YYFR
0
maxcode Messages postés 11 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 25 juillet 2006
25 juil. 2006 à 00:22
Salut ,

Donc j'ai ajouté les guimets mais ça ne fonctionne pas non plus :

var MaDate = new Date("2006", "0", "1", "20", "00", "00")

Toujours la même erreur :   Fin d'instruction attendue.

à plus

Maxcode
0
Rejoignez-nous