Вопрос

Как вы устанавливаете часовой пояс Windows на локальном компьютере программно на C #?Использование интерактивного инструмента невозможно, поскольку удаленные устройства не имеют пользовательского интерфейса или пользователей.Удаленный компьютер работает под управлением .NET 2.0 и Windows XP Embedded, а также локального приложения, которое взаимодействует с центральным сервером (через веб-службу) для автоматического управления своими задачами.Мы можем отправить команду для синхронизации с определенной комбинацией времени / пояса, но какой код можно поместить в локальное приложение для выполнения изменения?Изображение оборудования не отображается для определенных мест перед установкой, поэтому для использования любого оборудования в любом месте мы должны иметь возможность синхронизировать эту информацию.

Это было полезно?

Решение

Информация о временном поясе установки должен делать то, что вам нужно.Вам нужно будет использовать P/Вызывать чтобы добраться до этого.

Обратите также внимание, что вам нужно будет обладать привилегией SE_TIME_ZONE_NAME и включить ее.

Другие советы

Это не работает в Windows 7.Я пробовал использовать следующую среду windows 7 VSTS-2008 Открывается окно изменения часового пояса, поскольку мы делаем это вручную

сантош вы определенно правы.RunDLL32 shell32.dll,Control_RunDLL %SystemRoot%\system32 IMEDATE.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 # вызовите:

Система.Диагностика.Процесс.Запустите ("setTimeZone.bat", "Ключ часового пояса, который вы хотите установить").;

Вы рискуете получить неверные данные, если не используете UTC для передачи дат...Если вы меняете часовые пояса на устройстве...ваши свидания будут еще более отдаленными.

Возможно, вы захотите использовать UTC, а затем рассчитать время в каждом часовом поясе.

Вместо простой установки часового пояса в некоторых системах вам следует рассмотреть возможность использования службы времени Windows.Он будет обрабатывать не только часовой пояс.Он также сам позаботится о правильных настройках даты и времени.

Взгляните на: Как синхронизировать время со службой Windows Time в Windows XP

Даже если вы, возможно, собираетесь выполнить все эти настройки в Vista или Windows 7, взгляните на это здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top