Modification date de windows en vb.net et vba

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 012 fois - Téléchargée 20 fois

Contenu du snippet

La modification de la date courante du système en vb.net est tout sauf simple ! Et cela se complique encore plus lorsqu'on veut uniquement changer par exemple l'année...

On trouve partiellement une réponse avec le snippet : http://www.codyx.org/snippet_modifier-date-systeme_787.aspx
mais on ne pas en changer qu'un seul paramètre... Ce qui ne réponds pas complétement à mon problème.

La solution que j'ai trouvé, c'est tout simplement de passer par la commande DOS "date", comme on le ferait manuellement. C'est pas très gracieux, mais présente l'avantage de la simplicité...

Le code qui suit pourra aussi servir de modèle pour passer une commande DOS en VB.NET (ici en mode Console).

En annexe, j'inclus aussi un exemple en code VBA, qui réalise donc la même chose mais la syntaxe semble assez peu connue...

Source / Exemple :


' ====== EN VB.NET ======

Module Module1

    Sub Main()

        Dim p As New Process

        ' Récupère la date courante
        Dim str As String = DateTime.Now.Day & "/" & DateTime.Now.Month & "/" & DateTime.Now.Year

        ' Change
        p.StartInfo.FileName = "cmd.exe"
        p.StartInfo.Arguments = " /C date 01/01/2011 "
        p.StartInfo.CreateNoWindow = False
        p.Start()
        p.WaitForExit()
        p.Close()

        ' Lance application
        Process.Start("PokerStove.exe")

        ' Remet la date courante
        p.StartInfo.Arguments = " /C date " & str
        p.Start()
        p.WaitForExit()
        p.Close()

    End Sub

End Module

'
' ANNEXE
' ====== EN VBA ======
Sub ModifDate()
Date = #31/12/2011#
Time = #12:59:12 AM# 'ou PM
End Sub

Conclusion :


J'ai eu besoin de ce code comme "lanceur à mettre dans le répertoire" du logiciel gratuit "PokerStove" dont l'auteur a codé en dur une limitation d'utilisation en fonction de l'année. Dès le passage à 2012, on a un message d'erreur. La solution étant de reculer son horloge à 2011... L'auteur à depuis remis une nouvelle version pour éviter cette contrainte (Version 1.24). Mais, il suffit d'avancer son horloge pour constater qu'il l'a encore bridé pour 2014... -);

A voir également

Ajouter un commentaire

Commentaires

cs_Arnotic
Messages postés
936
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
-
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8 -
Oui, je comprends... Il reste que la mise en œuvre est loin d'être évidente.

Comme NHenry m'a proposé, il est préférable de mettre ce genre de source dans codyx. Chose faite.
Elle sera désactivée donc. Merci Brunews pour tes remarques.

Amicalement,
Us.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16 -
API Windows bien entendu.
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8 -
Bonjour,

On le trouve où ton "GetSystemTime" ?
Et d'après mes essais avec le code proposé dans codyx, il semble obligé d'indiquer tous les paramètres...

Amicalement,
Us.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16 -
SYSTEMTIME sttm;
GetSystemTime(&sttm);
sttm.wYear += 2; // PAR EXEMPLE
SetSystemTime(&sttm).

Pas faisable en dotnetterie ?

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.