Перехват C # SetSystemTime (WIN API) - PullRequest
       24

Перехват C # SetSystemTime (WIN API)

0 голосов
/ 27 октября 2010

Мне нужно ограничение для изменений времени, поступающих из разных источников. Лучший способ, как я думаю, это подключить WINAPI-функцию SetSystemTime (и, возможно, SetLocalTime). Я попытался подключить это с помощью библиотеки EasyHook с внедрением во все запущенные процессы, принадлежащие текущему пользователю системы. Но это не имело никакого эффекта. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 28 октября 2010

Проблема была в моей собственной системе. Я использую Windows 7, и когда я меняю время через стандартный диалог установки часов, запускается процесс rundll.exe, и он запускает процесс dllhost.exe, который вызывает SetLocalTime. Я проверил его на двух других компьютерах (WinXP и Win7), но там rundll.exe сам вызывает SetLocalTime.

0 голосов
/ 27 октября 2010

По любой причине вы не можете просто P / Invoke SetSystemTime, как показано здесь ?

Обратите внимание, что для этого вам необходимы повышенные привилегии:

Приложение должно иметь привилегию системного времени (привилегия SE_SYSTEMTIME_NAME) для успешного выполнения этой функции.

...