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 !
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 !
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
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):
résultat théorique:
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(<); GetSystemTime(&st); GetLocalTime(<); printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute); printf("The local time is: %02d:%02d\n", lt.wHour, lt.wMinute); }
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 !
Être administrateur désigne bien des choses mais aucunement le droit de tout faire.Pour les privilèges je suis administrateur donc pas de problème
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.
Généralement, il n'y pas de doublon dans les API système.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.
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.
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.mais cette fonction n'a pas l'air de modifier l'heure du système (ni l'heure locale d'ailleurs):
Le plus probable, c'est que vous n'avez pas donné assez de droit à votre exécutable.
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".Généralement, il n'y pas de doublon dans les API système.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.
Faudrait mieux faire avec, car les contraintes d'utilisation sont des plus "logique".
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.
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 ?
Partager