韩服lol安装好慢:50分:怎样编程实现禁止用户更改系统时间?

来源:百度文库 编辑:高校问答 时间:2024/04/20 05:40:57
电脑右下角双击时间或右键点时间选“调整日期/时间”就会弹出“日期和时间属性”对话框,怎样编程实现不让对话框弹出来呢?最好用VC++实现。
在“控制面板-》管理工具-》本地安全策略-》用户权利指派”里的“更改系统时间”可以指派给用户相应的权限,这里是可以通过更改权限禁止用户更改系统时间,但不知有没有办法用编程的方式实现这个权限的更改,注册表里可以更改吗?
我用MSVC++建了一个工程,主要是想捕获WM_TIMECHANGE消息,然后恢复系统时间,工程添加部分如下:

//成员变量:
SYSTEMTIME oldTime;

//初始化:
this->SetTimer(1, 1000, NULL);

//定时器函数:
void CMainFrame::OnTimer(UINT nIDEvent)
{
::GetLocalTime( &oldTime ); //记录系统时间

CFrameWnd::OnTimer(nIDEvent);
}

//消息截获函数:
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// 时间改变且不是本程序修改的
if ( ( pMsg->message == WM_TIMECHANGE ) && ( pMsg->hwnd != this->m_hWnd ) )
{
::SetLocalTime( &oldTime ); //恢复原来时间
}

return CFrameWnd::PreTranslateMessage(pMsg);
}

这样可以做到不让用户更改系统时间的目的,但出现了一个问题,就是用户一更改时间后(时间当然被这个程序恢复过来了)系统其他进程会占用较多的CPU资源,特别是EXPLORER.EXE占用50%左右的CPU资源,这个程序占用5%左右CPU资源,然后这个程序动不了了,在任务管理器里结束这个程序后,CPU占用就恢复正常了,这是怎么回事啊??

我是不懂编程的啊。

不知道安全策略改的是不是注册表,是的话就有个思路了。

你可以去下载个注册表监视器,然后改策略,看注册表哪里动了……