Comment régler le fuseau horaire de Windows sur la machine locale de manière programmatique en C# ? L'utilisation d'un outil interactif n'est pas envisageable car les unités distantes n'ont pas d'interface utilisateur ni d'utilisateurs. La machine distante fonctionne avec .NET 2.0 et Windows XP Embedded et une application locale qui communique avec un serveur central (via un service web) pour la direction automatisée de ses tâches. Nous pouvons envoyer une commande de synchronisation avec une certaine combinaison d'heures et de zones, mais quel code peut-on mettre dans l'application locale pour effectuer ce changement ? L'équipement n'est pas imagé pour des emplacements spécifiques avant l'installation, donc pour pouvoir utiliser n'importe quel équipement à n'importe quel endroit, nous devons être capables de synchroniser ces informations.
Réponses
Trop de publicités?SetTimeZoneInformation devrait faire ce dont vous avez besoin. Vous aurez besoin d'utiliser P/Invocation pour l'atteindre.
Notez également que vous devrez posséder et activer le privilège SE_TIME_ZONE_NAME.
santosh vous avez tout à fait raison. RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%. \system32\TIMEDATE.cpl ,,/Z %1 est obsolète depuis des années et ne fonctionnera pas sous Windows 2008, R2, Vista, 7, ... oh, oui j'ai remarqué que ce forum semble avoir un bug complet avec la reconnaissance de la touche entrée. peut-être qu'un jour le programmeur corrigera ce problème.
Essayez ceci...
Tout d'abord, vous devez trouver, dans le registre, l'élément suivant clé qui représente la zone que vous voulez ("Central Standard Time" est un exemple). Vous les trouverez ici :
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT \Current Version \Time Zones
Donc, avec cela en tête, créez un fichier batch, "SetTimeZone.bat" avec la ligne suivante dedans :
RunDLL32 shell32.dll,Control_RunDLL %SystemRoot% \system32\TIMEDATE.cpl ,,/Z %1
Depuis C#, appelez :
System.Diagnostics.Process.Start("SetTimeZone.bat", "La clé du fuseau horaire que vous voulez définir") ;
- Réponses précédentes
- Plus de réponses