编程修改IE首页

        首先,注册表中的数据是通过一种树状结构以根键和子键的形式组成的。放在这些键中的各种参数控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行。

        自己分别在Windows 7、vista和xp系统中打开注册表编辑器,发现都有五个根键,分别是:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS和HKEY_CURRENT_CONFIG。上网查了一下,发现Windows 98还有一个记录系统运行时刻状态的HKEY_DYN_DATA总共六个根键。这五个根键存放的信息分别是:

        HKEY_CLASSES_ROOT根键:记录了某类文件和打开该类文件的应用程序之间的相互关联关系。

        HKEY_CURRENT_USER根键:包含了当前登录用户的配置文件信息。

        HKEY_LOCAL_MACHINE根键:包含了当前计算机的配置数据,包括所安装的硬件以及软件的设置。这些性新为所有的用户登录系统服务。

        HKEY_USERS根键:包括默认用户的信息和所有以前登录用户的信息。

        HKEY_CURRENT_CONFIG根键:包含有关本地计算机在系统启动时使用的硬件配置文件的信息。

        其中,HKEY_LOCAL_MACHINE一个键已经存放了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息,HKEY_USERS也存放着HKEY_CURRENT_USER中存放的信息。

        一个根键键就是一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。

        键的数据类型主要有以下四种:

        REG_SZ:字符串。文本字符串。
        REG_MULTI_SZ:多字符串。含有多个文本值的字符串。
        REG_BINARY:二进制数。二进制值,以十六进制显示。
        REG_DWORD:双字。一个32位的二进制值,显示为8位的十六进制值。

        OK,有了注册表的基本概念后,可以动手来编程实现修改IE首页了。关于注册表的API函数有二三十个,提供对注册表的读取,写入,删除,以及打开注册表及键值等操作。修改IE首页主要涉及打开键、设置键值和关闭键三个操作,相关的API分别是:

        LONG RegCreateKeyEx(

              HKEY hKey,

              LPCWSTR lpSubKey,

              DWORD Reserved,

              LPWSTR lpClass,

              DWORD dwOptions,

              REGSAM samDesired,

              LPSECURITY_ATTRIBUTES lpSecurityAttributes,

              PHKEY phkResult,

              LPDWORD lpdwDisposition

        );

        本函数打开指定的键或子键。如果要打开的键不存在的话,则建立它。第一个参数是根键;第二个参数是子键;第三个参数设为0;第四个参数设为NULL;第五个参数为注册表键选项,可以设置为REG_OPTION_NON_VOLATILE或REG_OPTION_VOLATILE;第六个参数设置为0;第七个参数设置为NULL;第八个参数为一个句柄指针,该句柄用RegCloseKey关闭。该函数调用不成功返回非0,成功返回ERROR_SUCCESS。

        LONG RegSetValueEx(  HKEY hKey,   LPCWSTR lpValueName,   DWORD Reserved,   DWORD dwType,   const BYTE* lpData,   DWORD cbData );    

        本函数设置某子键下特定名称的值。第一个参数为RegCreateKeyEx中第八个参数所指的句柄,第二个参数为名称;第三个参数设为0;第四个函数是键的类型;第五个函数是指向键值的指针;第六个参数是该键值的大小。函数调用不成功返回非0,成功返回ERROR_SUCCESS。

        LONG RegCloseKey(  HKEY hKey  );

        本函数关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果。关闭一个键后,句柄变为非法,以使其不可再次被使用。为系统重新使用而释放句柄。函数调用不成功返回非0,成功返回ERROR_SUCCESS。

      

        修改IE首页的代码如下:

        int _tmain(int argc, _TCHAR* argv[])

        {

              HKEY hkey;

              LPCTSTR path = _T("Software\\Microsoft\\Internet Explorer\\Main");

   

              //打开键,若没有则创建

              LONG ret = RegCreateKeyEx(HKEY_CURRENT_USER ,path,0,NULL,REG_OPTION_NON_VOLATILE,

KEY_ALL_ACCESS ,NULL,&hkey,NULL);

              if(ret != ERROR_SUCCESS)

              {

                      printf("Error ! RegCreateKeyEx() failed!\n");

                     return -1;  

               }

 

              LPCTSTR startPage = _T("g.cn");

              //修改键值

               ret = RegSetValueEx(hkey,_T("Start Page"),NULL,REG_SZ,(BYTE*)startPage,_tcslen(startPage)*2);

               if(ret != ERROR_SUCCESS)  

               {      

                     printf("Error ! RegSetValueEx() failed!\n");

                     return -1;

              }

   

              //关闭该键

              RegCloseKey(hkey);

               return 0;

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值