Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > 编程解除注册表和IE主页的锁定
【标  题】:编程解除注册表和IE主页的锁定
【关键字】:编程,IE,注册表,IE
【来  源】:网络

编程解除注册表和IE主页的锁定

Your Ad Here

编程解除注册表和IE主页的锁定

 

摘要:利用Visual C++编程来解除注册表的锁定和IE主页不能修改的问题

关键词:注册表 API函数

 

一、提出问题

你是否有过这样的痛苦经历:不知什么时候IE主页被修改,想该回去的时候可是发现地址栏已经被锁定,该不了!于是想通过注册表来恢复,可是输入”regedit”回车后,却弹出“注册表已被管理员停用”!是不是很郁闷?

其实,这都是上网的时候中了病毒而造成了。恢复注册表有很多方法,这里我介绍如何用Visual C++编程来解决。

二、分析问题:

注册表被锁定是由于

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System下的DWORD“DisableRegistryTools”被修改为1”的缘故,将其键值恢复为0”,或者直接删除该项即可恢复注册表的使用。

IE首页被锁定则是由于在注册表编辑器中
HKEY_CURRENT_USER\Software\Policies\Microsoft\ Internet Explorer\Control Panel

”HomePage”
的值被改为1”,解决的办法是将其改为1”或直接删除该键值项,再重新打开“Internet属性就可以更改主页设置了。

 

三、解决问题

首先要介绍将要甬道的几个操作注册表的API函数。(只给出函数的功能,具体参数和用法可参考MSDN或相关的书籍)

RegOpenKeyEx()  打开一个指定键

RegDeleteValue()  在注册表中从一个键中删除一个值

RegSetValueEx()  向一个打开的注册表的键中存储数据

RegCloseKey()   关闭打开的注册表句柄

打开Visual C++,建立一个对话框程序Reg. 添加四个按扭控件:

ID

标题

IDC_LOCKREG

锁定注册表

IDC_UNLOCKREG

解除锁定

IDC_LOCKHOMEPAGE

锁定IE主页

IDC_UNLOCKHOMEPAGE

解除锁定

双击IDIDC_UNLOCKREG的按扭,添加消息处理函数:

void CRegDlg::OnUnlockReg()

{

   HKEY hkey; 

  LPCTSTR strSubKey="Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\system",

   if(::RegOpenKeyEx(HKEY_CURRENT_USER,

                   strSubKey,

                                0,

                             KEY_READ|KEY_WRITE,

                                &hkey) !=ERROR_SUCCESS)  

          return;

 

   if(::RegDeleteValue(hkey,"DisableRegistryTools") !=ERROR_SUCCESS)

          return ;

   else

          MessageBox(“你已经成功解除了注册表的锁定”,”恭喜你”,MB_OK |

                 MB_ICONINFORMATION); 

   ::RegCloseKey(hkey);

}

 

同样,双击IDIDC_UNLOCKHOMEPAGE的按扭添加消息处理函数:

void CRegDlg:: OnUnlockhomepage()

{

   HKEY hkey;

LPCTSTR strSubKey="Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel",,

   if(::RegOpenKeyEx(HKEY_CURRENT_USER,

                   strSubKey,

                                0,

                                KEY_READ|KEY_WRITE,

                                &hkey) !=ERROR_SUCCESS)

      return;

   DWORD dwValue=0;

   if(::RegSetValueEx(hkey,

          "HomePage",

                               NULL,

                               REG_DWORD,

                               (LPBYTE)&dwValue,            //LPBYTEunsigned char*

                               sizeof(DWORD) ) !=ERROR_SUCCESS)

{

          MessageBox("设置注册表相关键值失败","错误",

MB_OK|MB_ICONEXCLAMATION);

          return;

   }

   else

          MessageBox("你已经成功地解除了IE主页的锁定","恭喜你",

MB_OK|MB_ICONINFORMATION); 

   ::RegCloseKey(hkey);    

}

为了简化编程,“锁定注册表”和“锁定IE主页”的功能不通过用API函数操作注册表来完成,而是编写两个注册表文件,然后导入注册表实现。

建立DisableRegistryTools.reg文件,内容如下:

REGEDIT4

 

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

"DisableRegistryTools"=dword:00000001

建立LockHomePage.reg文件,内容如下:

REGEDIT4

 

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]

"HomePage"=dword:00000001

 

然后添加消息处理函数:

void CRegDlg::OnLock()

{

   ::ShellExecute(GetSafeHwnd(),"open",” DisableRegistryTools.reg”,NULL,"",SW_SHOW);

}

void CRegDlg::OnLockHomepage()

{

   ::ShellExecute(GetSafeHwnd(),"open","LockHomePage.reg",NULL,"",SW_SHOW)

}

 

四、经验总结

     好了,现在编译链接便可运行了,有了这个小程序,你从此就不用再害怕这些雕虫小技了。本程序在Windows XP, Visual C++ 6.0环境下调试通过

给对话框程序制作启动画面:【上一篇】
Visual C++编程经验总结:【下一篇】
【相关文章】
  • 有关注册表API函数
  • VC++技术内幕(第四版)读书笔记之Windows的编程模式
  • VxD编程入门教程
  • Visual C++编程中的文件操作
  • Visual C++编程技巧(上)
  • Visual C++编程技巧(中)
  • Visual C++编程技巧(下)
  • Visual C++编程控制输入法
  • 针对Excel表格文件操作的编程实现
  • 数据库开发之窗体编程
  • 【随机文章】
  • 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式的解决办法
  • Visual Basic 工 程 管 理二
  • Google Web Accelerator试用
  • Web新动力 ——Ajax
  • VIRTUAL COMMUNITY INFORMATICS
  • 又郁闷了一天
  • Windows 2000下jsp平台搭建的简单过程
  • 调试程序DEBUG命令说明
  • Firefox插件系列(1)-----开始&AdBlock
  • 学习php5
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.