2010-10-27 89 views
0

我需要限制来自不同来源的时间变化。 正如我想的,最好的方法是钩住WINAPI函数SetSystemTime(也许SetLocalTime)。 我试图通过在当前系统用户所拥有的所有正在运行的进程中使用EasyHook库来注入此钩。但它没有效果。 我该怎么做?C#SetSystemTime(WIN API)挂钩

回答

0

问题出在我自己的系统上。 我使用Windows 7,当我通过标准时钟设置对话框更改时间时,rundll.exe进程运行并启动调用SetLocalTime的dllhost.exe进程。 我已经在另外两台电脑上测试过它(WinXP & Win7),但rundll.exe调用SetLocalTime本身。

0

任何原因你不能只是P/Invoke SetSystemTime如图所示here

请注意,你需要一个提升的权限来做到这一点:

应用中必须具备的系统时间 特权(的SE_SYSTEMTIME_NAME 特权)此功能 成功。

+0

我不想调用SetSystemTime,我想钩住它。 – Ivan 2010-10-28 02:46:26