C# 如何接管整个系统达到系统管控目的
1、禁止任务管理器(taskmgr.exe),防止用户恶意关闭某些系统功能,我们通过2中方式来完成
1) 通过检测运行程序中是否存在taskmgr.exe ,如果有直接关闭。
C# System.Diagnostics.Process.GetProcessesByName(strProcessName)
2) 通过更改注册表,实现任务管理器禁用。
Software\Microsoft\Windows\CurrentVersion\Policies\System
更改DisableTaskMgr数据项(DWord) 1-表示禁用0-启用

2、禁止注册表(regedit.exe),达到禁止用户恶意修改注册表的目的。
1) 通过检测运行程序中是否存在regedit.exe ,如果有直接关闭。
C# System.Diagnostics.Process.GetProcessesByName(strProcessName)
2) 通过更改注册表,实现任务管理器禁用。
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system
更改disableregistrytools数据项(DWord) 1-表示禁用0-启用

3、禁止doc命令(cmdt.exe),达到禁止用户恶意修改注册表的目的。
1) 通过检测运行程序中是否存在cmd.exe ,如果有直接关闭。
C# System.Diagnostics.Process.GetProcessesByName(strProcessName)
2) 通过更改注册表,实现任务管理器禁用。
Software\Policies\Microsoft\Windows\System
更改DisableCMD数据项(DWord) 1-表示禁用0-启用

4、禁止USB所有USB存储设备,我们通过注册表命令完成。
SYSTEM\CurrentControlSet\Services\USBSTOR
更改Start数据项(DWord) 3-表示开启 0-禁用

5、禁用所有网卡,我们通过Win32_NetworkAdapter 获取系统所有网卡,进行禁用和启用。

6、建立键盘钩子和鼠标钩子(hook),用户禁止用户的鼠标和键盘操作,控制用户热键的应用,以及键盘操作,进一步控制用户可以操作的应用程序。由于代码限制,需要有什么不懂得可以私信沟通。


7、检测和管控U盘,让已知的U盘可以用其他U盘不可以用。
当USB设备插入或者弹出时,Windows会产生一条全局消息:WM_DEVICECHANGE
我们需要做的是,获得这条消息的wParam参数,如果为DBT_DEVICEARRIVAL则表示有设备插入并可用,
如果是DBT_DEVICEREMOVECOMPLETE则表示有设备已经移除。再查看lParam参数为DBT_DEVTYP_VOLUME时,
就可以取出DEV_BROADCAST_VOLUME结构的卷号dbcv_unitmask,就知道是哪个卷被插入或者弹出。
