65.9K
CodeProject 正在变化。 阅读更多。
Home

MFS 系统实用程序

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.85/5 (35投票s)

2004 年 7 月 15 日

CPOL

7分钟阅读

viewsIcon

73715

downloadIcon

1218

此应用程序通过注册表提供对本地计算机的一般限制,例如隐藏/显示驱动器和其他 UI 元素。

Sample Image - SysUtil.gif

引言

开始吧。

  1. 禁用/启用驱动器

    我所有的软件都依赖于注册表,你知道注册表是系统程序员的财富,因为 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 创建了包装器,所以直接使用它们就行。

  2. 禁用控制面板。

    包含用于**显示**或**隐藏**控制面板数据的键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoControlPanel”**。如果其值为 0,则可以看到控制面板,如果值为 1,则看不到控制面板。

  3. 禁用更改密码。

    你将在 **WIN2000 及以上版本按 (CTRL+ALT+DEL) 时** 看到此选项。

    其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    值为**“DisableChangePassword”**。如果其值为 0,则“更改密码”选项启用,如果值为 1,“更改密码”选项禁用。

  4. 禁用搜索。

    你将在**“开始”菜单**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    值为**“NoFind”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。
  5. 禁用运行

    你将在**“开始”菜单**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoRun”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  6. 禁用关机。

    你将在**“开始”菜单**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoClose”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  7. 禁用网络访问。

    你将在**桌面**上看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoNetHood”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  8. 禁用网络访问。

    你将在**桌面**上看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoNetHood”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  9. 禁用任务栏设置。

    你将在**桌面**上看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoSetTaskBar”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  10. 禁用任务栏设置。

    你将在**右键单击“开始”菜单时**看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoSetTaskBar”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  11. 禁用注册表编辑器。

    这是注册表编辑器工具。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    值为**“DisableRegistryTools”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  12. 禁用任务管理器

    你通常将在**Windows 2000 及以上版本按 (CTRL+ALT_DEL) 时**看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    值为**“DisableTaskMgr”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  13. 禁用上下文菜单。

    你将在**右键单击桌面时**看到此选项。出现的菜单称为上下文菜单,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoViewContextMenu”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  14. 禁用桌面图标。

    此选项适用于桌面上的所有图标,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

    值为**“NoDesktop”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  15. 禁用显示属性。

    你将在**右键单击桌面并单击“属性”菜单项时**看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
    值为**“NoDispCPL”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  16. 禁用背景选项卡。

    你将在**显示控制面板**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    值为**“NoDispBackgroundPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  17. 禁用屏幕保护程序选项卡。

    你将在**显示控制面板**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
    值为**“NoDispScrSavPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  18. 禁用设置和 Plus 选项卡。

    你将在**显示控制面板**中看到此选项,其键是

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    值为**“NoDispSettingsPage”**。如果其值为 0,则可以看到此选项启用,如果值为 1,则看不到该选项。

  19. 禁用外观选项卡。

    你将在**显示控制面板**中看到此选项,其键是

    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: 信息

    返回值含义

    1. 0 代表软盘驱动器。
    2. 1 代表硬盘。
    3. 2 代表 CDROM。
    4. 3 代表 RAMDISK。
    5. 4 代表网络驱动器。
    6. 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(他在澳大利亚学习,我非常想念他)。
  • 致我的父母(感谢他们的关怀)。
© . All rights reserved.