MFS 系统实用程序
此应用程序通过注册表提供对本地计算机的一般限制,例如隐藏/显示驱动器和其他 UI 元素。
引言
开始吧。
- 禁用/启用驱动器
我所有的软件都依赖于注册表,你知道注册表是系统程序员的财富,因为 M$ 或者说 Windows 非常依赖注册表,但要利用它的功能,你必须知道正确的注册表位置,或者你可以从 这里 下载注册表指南。
现在,看看这个应用程序。首先看看驱动器,驱动器的禁用和启用存储在以下键中,
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
在值“NoDrives”下。现在这个值的数据取决于你的系统有多少个驱动器。举个例子,如果你的系统有 A: C: D: 驱动器,你想禁用 C 驱动器。注册表中的条目将是 2int(65-'C'),如果你想禁用 A: 和 D:,注册表值是 2((65-int('A'))+(65-int('d')))。好的,我想你明白了。别担心,我已经为我的 DLL 创建了包装器,所以直接使用它们就行。
- 禁用控制面板。
包含用于**显示**或**隐藏**控制面板数据的键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoControlPanel”**。如果其值为 0,则可以看到控制面板,如果值为 1,则看不到控制面板。
- 禁用更改密码。
你将在 **WIN2000 及以上版本按 (CTRL+ALT+DEL) 时** 看到此选项。
其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“DisableChangePassword”**。如果其值为 0,则“更改密码”选项启用,如果值为 1,“更改密码”选项禁用。
- 禁用搜索。
你将在**“开始”菜单**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoFind”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。 - 禁用运行
你将在**“开始”菜单**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoRun”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用关机。
你将在**“开始”菜单**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoClose”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用网络访问。
你将在**桌面**上看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoNetHood”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用网络访问。
你将在**桌面**上看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoNetHood”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用任务栏设置。
你将在**桌面**上看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoSetTaskBar”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用任务栏设置。
你将在**右键单击“开始”菜单时**看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoSetTaskBar”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用注册表编辑器。
这是注册表编辑器工具。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“DisableRegistryTools”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用任务管理器
你通常将在**Windows 2000 及以上版本按 (CTRL+ALT_DEL) 时**看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“DisableTaskMgr”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用上下文菜单。
你将在**右键单击桌面时**看到此选项。出现的菜单称为上下文菜单,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoViewContextMenu”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用桌面图标。
此选项适用于桌面上的所有图标,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
值为**“NoDesktop”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用显示属性。
你将在**右键单击桌面并单击“属性”菜单项时**看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“NoDispCPL”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。 - 禁用背景选项卡。
你将在**显示控制面板**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“NoDispBackgroundPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用屏幕保护程序选项卡。
你将在**显示控制面板**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“NoDispScrSavPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。 - 禁用设置和 Plus 选项卡。
你将在**显示控制面板**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“NoDispSettingsPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
- 禁用外观选项卡。
你将在**显示控制面板**中看到此选项,其键是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
值为**“NoDispAppearancePage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
我想我已经解释了我软件的每个功能。记住一点,其中一些选项只有在计算机重启后才生效。
软件的使用
- 只需选中你想要应用的限制,然后单击“应用”,限制即被应用。
- **无需**担心。此软件运行得非常好。我每天都在测试它。如果它能应用限制,它也能解除限制。无需担心。用印地语来说就是“**MAIN HOIN NAA**”(我在这里为你排忧解难),如果出现任何问题,我随时为你提供帮助。
- 无需记录已应用或已解除的限制,当你启动我的软件时,选中的框显示当前用户已应用的限制,未选中的框显示未应用的限制。
- 请记住,大多数限制在应用和解除后都需要重启你的计算机,好的。
CNMPDrivesClass 的工作原理
类的声明如下
class AFX_EXT_CLASS CNMPDrivesClass { CString NMPChangeToBinary(DWORD dwVar); public: void SendTypeOFDrives(CUIntArray &Stat); void SendStatusOFDrives(CUIntArray &stat); BOOL GetDrivesVolume(CStringArray &VolumeName,CDWordArray SerialNumber,CStringArray &FileSystem); void NMPReturnNoOfDrives(CUIntArray &NoOfDrives); void NMPDisableLocalDrives(CUIntArray &a); CRegKey m_LocalKey; CNMPDrivesClass(); CNMPDrivesClass(CString SID); CNMPDrivesClass(BOOL bUser); virtual ~CNMPDrivesClass(); private: CRegKey f; };
现在让我解释一下每个函数的工作原理。
-
void SendTypeOFDrives(CUIntArray &Stat);
此函数发送计算机中存在的驱动器类型。其参数是 `CUIntArray`,返回值根据驱动器而定,例如
如果你的计算机有 A: C: D: 和 E: 驱动器,
数组 [0] - A: 信息
数组 [1] - C: 信息
数组 [2] - D: 信息
数组 [3] - E: 信息
返回值含义
- 0 代表软盘驱动器。
- 1 代表硬盘。
- 2 代表 CDROM。
- 3 代表 RAMDISK。
- 4 代表网络驱动器。
- 5 代表未知或无法检索。
-
void SendStatusOFDrives(CUIntArray &stat);
此函数将告诉驱动器的状态,无论是启用还是禁用。其参数包含被禁用的驱动器 `int`。例如,`int(65)` 代表 A,`int(66)` 代表 B,依此类推。
现在让我用一个小例子来解释。
假设你的计算机有 A:、C:、D:、E: 驱动器,并且 C: 和 D: 被禁用。那么返回的数组 `Stat` 的大小是 2。然后,`Stat[0]=C` 和 `&Stat[1]=D`。
-
BOOL GetDrivesVolume(CStringArray &VolumeName,CDWordArray SerialNumber,CStringArray &FileSystem);
此函数包含卷名、序列号和驱动器文件系统的信息,其顺序与上面相同。
例如,如果你的计算机有 A: C: D: 和 E: 驱动器,
数组 [0] - A: 信息
数组 [1] - C: 信息
数组 [2] - D: 信息
数组 [3] - E: 信息
-
void NMPReturnNoOfDrives(CUIntArray &NoOfDrives);
此函数返回本地系统包含的驱动器数量,但它将返回字符的整数等效值。
例如,如果你的计算机有 A: C: D: 和 E: 驱动器,
数组 [0]:65 - 即 A(根据 ASCII 字符集)。
数组 [1]:67 - 即 C(根据 ASCII 字符集)。
数组 [2]:68 - 即 D(根据 ASCII 字符集)。
数组 [3]:69 - 即 E(根据 ASCII 字符集)。
-
void NMPDisableLocalDrives(CUIntArray &a);
此函数将禁用计算机中的本地驱动器,但请记住,它会在写入之前擦除先前的值。
现在,如果你想禁用 A: 和 C:,只需像 `a.Add(A)`,`a.Add(C)`(因为 `a` 是一个数组类)一样添加,然后调用该函数,
NMPDisableLocalDrives(a);
瞧!重启后,A: 和 C: 在 Explorer 中就看不到了。
特别感谢
- 致我的朋友 Amit Mehta(他在澳大利亚学习,我非常想念他)。
- 致我的父母(感谢他们的关怀)。