Мне почти нечестно задавать этот вопрос, но я застрял в неудачном положении.
Мы спешим, чтобы обеспечить очень быстрое и грязное временное решение. Нам нужно запустить 2 сторонних приложения (к счастью, не одновременно). Приложения сильно зависят от времени. Один требует GMT, а другой - BST (британское летнее время). Так что в британском летнем времени GMT и BST отличаются на час.
Мы хотели бы написать небольшое приложение, которое может изменить системное время перед запуском соответствующего приложения. Это оказывается немного сложнее, чем звучит. Основная проблема в том, что вы не можете знать, что время правильное, прежде чем менять его. Возможно, ноутбук был выключен без надлежащего выхода из нашего приложения (проблемы с аккумулятором и т. Д.).
Мы можем синхронизировать время с сервером по сети. Но я не смог определить, когда это произошло. Я обнаружил, что есть сообщение окна WM_TIMECHANGED, которое транслируется, когда установлено время. Так что это может быть использовано.
Мы могли бы также показать сообщение при входе в систему и заставить пользователя проверить время запуска, но пользователи очень быстро ослепнут или не осознают важность.
A working example of this would be:
1: Laptop set to BST (Current time is 13:00)
2: Open app one (GMT) time will change to 12:00
3: Close app one (GMT) time will change to 13:00
4: Open app one (BST) time will remain at 13:00
5: Close app one (BST) time will change to 13:00
У кого-нибудь есть какие-нибудь умные идеи?