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.设置键值,达到开机自启动的目的。
今天就到这了,代码实现明天再弄
- windows API一日一练(5)
- windows API一日一练(6)
- Windows API一日一练(7)
- Windows API一日一练
- Windows API一日一练
- Windows API一日一练(5)RegisterClass和RegisterClassEx函数
- Windows+API一日一练.zip
- Windows编程一日一练(1)
- windows编程一日一练(2)
- windows编程一日一练(3)
- Windows编程一日一练(1)
- windows编程一日一练(2)
- windows编程一日一练(3)
- Windows API一日一练(1)第一个应用程序
- Windows API一日一练(2)使用应用程序句柄
- Windows API一日一练(3)使用命令行参数
- Windows API一日一练(4)MessageBox函数
- Windows API一日一练(6)CreateWindow函数
- SSH无密码设置
- Yii framwork crud 深入YII DAO 笔记三
- POJ 1988 Cube Stacking
- (四)实验2-3-3 信号处理总结以及Linux下支持的信号列表
- 同一台机器上安装多个Tomcat
- windows API一日一练(5)
- AMR文件格式分析
- 矩阵乘法和二分求阶乘 解线性递推问题(大数据的递推)
- 向android移植opencv的错误笔记
- lucene索引文件的格式(2)
- App"确定"按钮应该在左边还是右边?
- C#与C++之间的类型对应表
- 总结一下排序算法
- strcmp的源码