有关WINDOWS程序设计MFC的问题

来源:百度知道 编辑:UC知道 时间:2024/04/29 22:19:06
利用MFC做了一个项目(系统的个人助手),想实现一个系统定时重启,定时关闭,还有键盘锁定,鼠标锁定的功能,请问如何实现??大概讲一下思路就可以不要求代码 希望各位能指点一下,最好说清楚点 初学MFC 谢谢了

启动一个定时器,获得系统关闭/重启的时间后做对比,到时间就执行动作。
关机/重启用api函数ExitWindowEx()就可以。
ExitWindowsEx(EWX_POWEROFF,0) // 关闭计算机
ExitWindowsEx(EWX_REBOOT,0) // 重启计算机
需要注意的是,win9x可以用ExitWindowEx直接关机,但是在WinNT内核系统下需要先获得特殊权限才能关机。
用 OpenProcessToken() 和 LookupPrivilegeValue() 获得并制定特权,用AdjustTokenPrivileges()启动特权,然后再用 ExitWindowsEx() 关机。
锁定键盘鼠标,需要调用windows系统里的user32.dll,该dll里的BlockInput()函数可以实现键盘和鼠标的锁定和解锁,只需要将参数设置为TRUE或者FALSE。很简单。当利用BlockInput()函数锁定键盘鼠标的时候,"Ctrl+Alt+Delete"仍然是有效的,不必担心激活问题。
说的还清楚吧。

重启关机好办...

我在想你键盘鼠标都锁定了拿什么激活... DirectInput能起到拦截输入的作用么,我忘了TvT

系统定时重启,定时关闭:
你可以设置一个Timer,然后在里面判断,
ExitWindowsEx(EWX_POWEROFF,0) // 关闭计算机
ExitWindowsEx(EWX_REBOOT,0) // 重启计算机
但是你程序又是没有权限是不能关机,老是注销,提高程序权限是:

HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
return;
LookupPrivil