質問

C# でプログラム的にローカル マシンの Windows タイム ゾーンを設定するにはどうすればよいですか?リモート ユニットにはユーザー インターフェイスやユーザーがないため、対話型ツールを使用することはできません。リモート マシンは、.NET 2.0 および Windows XP Embedded を実行し、タスクの自動指示のために (Web サービス経由で) 中央サーバーと通信するローカル アプリを実行します。特定のタイム/ゾーンの組み合わせに同期するコマンドを提供できますが、変更を達成するにはローカル アプリにどのようなコードを追加できるでしょうか?機器は設置前に特定の場所向けにイメージ化されていないため、任意の場所で機器を使用するには、この情報を同期できる必要があります。

役に立ちましたか?

解決

SetTimeZoneInformation 必要なことをすべきです。を使用する必要があります P/呼び出し それを達成するために。

SE_TIME_ZONE_NAME 権限を所有し、有効にする必要があることにも注意してください。

他のヒント

これは Windows 7 では機能しません。私は次の環境で試しましたWindows7 VSTS-2008それは私たちが手動で行うときに変更タイムゾーンウィンドウを開いています

Santoshあなたは間違いなく正しいです。rundll32 shell32.dll、control_rundll%systemroot% system32 timedate.cpl ,,/z%1は何年も非推奨であり、Windows 2008、R2、Vista、7、...で実行されません。そうそう、このフォーラムには Enter キーの認識に関して完全なバグがあるようです。おそらくいつかプログラマーがその問題を解決してくれるでしょう。

これを試して...

まず、レジストリ内で次のファイルを見つける必要があります。 希望するゾーンを表します (「中央標準時」が例です)。それらはここにあります:

HKEY_LOCAL_MACHINE\ソフトウェア\Microsoft\Windows NT\現在のバージョン\タイムゾーン

したがって、これを念頭に置いて、次の行を含むバッチ ファイル「SetTimeZone.bat」を作成します。

RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%\system32 IMEDATE.cpl,,/Z %1

C# から次のように呼び出します。

System.Diagnostics.Process.Start("SetTimeZone.bat", "設定するタイムゾーンのキー");

日付の送信に UTC を使用しない場合、データが不正確になる危険があります...デバイスのタイムゾーンを変更すると...あなたのデートはさらに先になります。

UTC を使用して、各タイムゾーンの時間を計算することもできます。

一部のシステムのタイム ゾーンを設定するだけでなく、Windows タイム サービスの使用を検討する必要があります。タイムゾーンを処理するだけではありません。また、日付と時刻自体の正しい設定も考慮されます。

を見てみましょう: Windows XP で Windows タイム サービスと時刻を同期する方法

これらすべての設定を Vista または Windows 7 内で行う場合でも、次の点を見てください。 これはここです.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top