IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Modification de la date du système


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut Modification de la date du système
    Bonjour à tous,
    j'aimerai pouvoir modifier la date du système (windows) depuis un .exe écris en c++ (ou en c si c'est plus facile), mais je n'ai trouvé que la manière de récupérer la date actuelle.
    Donc si quelqu'un a une idée, merci d'avance !

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 454
    Par défaut
    Bonjour,

    SetSystemTime function
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

    Attention il faut des privilèges spécifiques pour pouvoir modifier la date et heure système

    Cordialement

  3. #3
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Merci beaucoup
    (Pour les privilèges je suis administrateur donc pas de problème et sinon c'était plutôt la date que je voulais changer mais c'est pas grave puisqu'il y a forcément une fonction équivalente dans le site que tu m'a mis en lien.)
    Par contre j'ai essayé, mais cette fonction n'a pas l'air de modifier l'heure du système (ni l'heure locale d'ailleurs):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <windows.h>
    #include <stdio.h>
     
    int main()
    {
        SYSTEMTIME st, lt;
     
        st.wHour=10;
        st.wMinute=10;
        lt.wHour=10;
        lt.wMinute=10;
        SetSystemTime(&st);
        SetLocalTime(&lt);
     
        GetSystemTime(&st);
        GetLocalTime(&lt);
     
        printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
        printf("The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
    }
    résultat théorique:
    The system time is: 10:10
    The local time is: 10:10

    résultat réel:
    The system time is: 20:25
    The local time is: 22:25

    Où est le problème ?
    Merci d'avance !

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 510
    Par défaut
    Pour les privilèges je suis administrateur donc pas de problème
    Être administrateur désigne bien des choses mais aucunement le droit de tout faire.
    A la rigueur, il désigne le droit de se donner dynamiquement d'autres droits, mais c'est pas les pleins pouvoirs tout le temps.

    je voulais changer mais c'est pas grave puisqu'il y a forcément une fonction équivalente dans le site que tu m'a mis en lien.
    Généralement, il n'y pas de doublon dans les API système.
    Faudrait mieux faire avec, car les contraintes d'utilisation sont des plus "logique".
    Changez l'heure d'une machine est une action extrêmement dangereuse d'un point de vue sécurité car tous les mécanismes de sécurité sont basés directement ou indirectement sur cette heure.

    mais cette fonction n'a pas l'air de modifier l'heure du système (ni l'heure locale d'ailleurs):
    Il s'agit d'une API C, il faut toujours vérifier les valeurs de retour et appliquer les préconisations indiquées dans la documentation pour le traitement des erreurs.

    Le plus probable, c'est que vous n'avez pas donné assez de droit à votre exécutable.

  5. #5
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    je voulais changer mais c'est pas grave puisqu'il y a forcément une fonction équivalente dans le site que tu m'a mis en lien.
    Généralement, il n'y pas de doublon dans les API système.
    Faudrait mieux faire avec, car les contraintes d'utilisation sont des plus "logique".
    Si on rajoute les quelques mots avant, cela rend tous son sens à la phrase: "c'est la plutôt la date que je voulais changer".
    En effet, j'aimerai pouvoir modifier la date de l'ordi depuis un programme c++ tout en stockant la vraie date dans une variable afin de la rétablir à la fin de l'exécution du programme.
    Niveau sécurité, je ne pense pas que cela soit vraiment problématique puisque j'exécute le programme sans être connecté pour éviter les problèmes de synchronisation de la date; de plus la date ne reste changée que quelques secondes.

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    SetSystemTime() permet de modifier le temps au sens large, heure et date si tu préfères.
    As-tu vérifier la valeur retour de SetSystemTime(), as-tu appeler GetLastError() le cas échéant ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/07/2011, 11h09
  2. Modification de la date du système
    Par sidneyvba dans le forum Langage
    Réponses: 1
    Dernier message: 23/10/2007, 19h11
  3. [MFC]Modification date/heure système
    Par jacklafrip dans le forum MFC
    Réponses: 2
    Dernier message: 24/05/2007, 17h24
  4. [Utilisation] Récupérer les modifications depuis une date donnée
    Par Sapience dans le forum CVS
    Réponses: 1
    Dernier message: 15/02/2006, 12h08
  5. modification formulaire + validation date
    Par cari dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/01/2006, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo