windows API一日一练(5)

来源:互联网 发布:pps网络电视下载 编辑:程序博客网 时间:2024/05/01 17:13

      今天稍微阅了一下注册表编程的相关内容,下面就将所见所闻写出来罢。

     首先介绍一下注册表的一些基础知识,下图便是微软提供的注册表编辑器结构图,大概分为两部分,左边是根键和子键,右边是各种键项的参数。详细信息建议参阅百度百科


      注册表编程其实就是对6个API函数进行操作,但是由于注册表功能太多,学习起来还是挺费劲的。下面只对这些函数进行极为简单的介绍,因为想要学好注册表编程,只能靠自己去多多练习和不断的查阅资料,这里不可能介绍的很充分。

1.  LONG RegCreateKeyEx(              //创建注册表,该函数执行成功返回   ERROE_SUCCESS

        HKEY hKey,            //要创建的子键所在的根键目录
  LPCTSTR lpSubKey,  //要创建的子健名称
  DWORD Reserved,    //保留参数,真心不知道这个参数的作用,其值为零
  LPTSTR lpClass,     //键的种类,通常为NULL
  DWORD dwOptions,    //子健选项
  REGSAM samDesired,  //存取权限
  LPSECURITY_ATTRIBUTESlpSecurityAttributes,  //安全继承属性
  PHKEY phkResult,    //返回的句柄,用来唯一表创建的子健
  LPDWORD lpdwDisposition   //标识作用

);


2. LONG RegOpenKeyEx(     //打开注册表

           HKEY hkey,                       //要打开的根键
  LPCTSTR lpSubKey,       //要打开的子健
  DWORD ulOption,         //为零
  REGSAM samDesired,  //存取权限
  PHKEY phkResult        //
返回的句柄,用来唯一表创建的子健

)


3 RegCloseKey(     //关闭注册表

     HKEY hkey;

)


4.RegDeleteKey(  //删除子健,若子键下面还有下级子健,则该函数执行失败

   HEKY hkey;      //要删除子键所在根键目录

   LPCTSTR lpSubKey;   //要删除的子健迷路

)

5. LONG RegQueryValueEx(       //查询键值
  HKEY hKey,   //LONG RegOpenKeyEx返回的phkResult
  LPTSTR lpValueName,  
  LPDWORD lpReserved,
  LPDWORD lpType,   //键值的数据类型
  LPBYTE lpData,    //返回的键项值
  LPDWORD lpcbData   //键项值的大小
  );

6.LONG RegSetValueEx(   //设置键值
  HKEY hKey,
  LPCTSTR lpValueName,
  DWORD Reserved,
  DWORD dwType,
  CONST BYTE *lpData,
  DWORD cbData
  );

下面就用这些函数来实现一个具体的功能,有的同学写完自己的程序(特别是系统服务程序)之后,很想知道怎样能让它开机自启动,其实很简单,只需对注册表进行简单的设置即可。不过值得注意的是,现在很多PC上都安装了360卫士,360有很多讨厌的功能会拦截对注册表的编辑功能

1.打开注册表HKEY_LOCAL_MACHINE下的SOFTWARE\\Microsotf\Windows\\CurrentVersion\\Run

2.获取程序的完整文件名

3.设置键值,达到开机自启动的目的。

今天就到这了,代码实现明天








原创粉丝点击