请问一下怎么样确定注册表的键名和键值啊??难道是随便取的名字?
还是相应软件里面的变量设置?或者是系统本来就有的?那么系统又如何能够辨认相应的诸多的键呢?
真的不知道改注册表的时候怎么样加键名?
在线等待!!
还是相应软件里面的变量设置?或者是系统本来就有的?那么系统又如何能够辨认相应的诸多的键呢?
真的不知道改注册表的时候怎么样加键名?
在线等待!!
解决方案 »
- 文档程序怎么在下面的框架内生成或使用各种控件?
- 被困扰已久的问题
- 如何将子窗口数据传递到父窗口
- 请问报这种错是由什么引起的啊???跪谢了(在线等)
- 在单文档程序中如何使用定时器实现每天定时发送
- ~~~~~~Dialog应用程序APP的Onldle()为什么不起作用,在线等~~~~~~
- 一个非常困惑的问题!
- jdy,谢谢你!
- 关于 UIAutomation 的问题,谢谢帮忙!
- 我把edit控件的属性改为只读的,我通过edit控件的变量m_edit,m_edit.SetWindowText("adfa");来显示文字请问怎么改变这种情况下显示文字的颜色,真的谢谢!!!!!
- 对于一个sdi程序,事先做好了两个菜单,如何在程序中可以动态的切换这两个菜单呀?
- 下面的函数如何使用?
禁用控制面板的“显示”设置项中的“外观”选项卡
在HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System下在右边的窗口中新建一个DWORD值:“NoDispAppearancePage”,并设其值为“1”。
禁用控制面板的“显示”设置项
在HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System下在右边的窗口中新建一个DWORD值:“NoDispCPL”,并设其值为“1”。禁止在“显示属性”中出现“屏幕保护程序”这个分菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoDispScrSavPage”,并设其值为“1”。禁止在“显示属性”中出现“效果,web,设置”这三个分菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoDispSettingsPage”,并设其值为“1”。禁止修改“开始”菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\Explore 在右边的窗口中新建一个DWORD值:“NoChangeStartMenu”,并设其值为“1”。禁止在“系统属性”中出现“文件系统”的菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoFileSysPage”,并设其值为“1”。禁止在“系统属性”中出现“虚拟内存”的菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoVirtMemPage”,并设其值为“1”。禁止在“系统属性”中出现“设备管理器”的菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoDevMgrPage”,并设其值为“1”。禁止在“系统属性”中出现“硬件配置文件”的菜单
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\System 在右边的窗口中新建一个DWORD值:“NoConfigPage”,并设其值为“1”。禁止添加打印机
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\Explorer 在右边的窗口中新建一个DWORD值:“NoAddPrinter”,并设其值为“1”。禁止删除打印机
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\Explorer 在右边的窗口中新建一个DWORD值:“NoDeletePrinter”,并设其值为“1”。改变“控制面板”中的“添加/删除程序”的“安全/卸载”中的列表内容
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\Uninstall下有许多主键,要删除
“安全/卸载”列表中的某条内容,只要删除相对应的主键即可。禁止在"控制面板"中显示"网络"属性
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion\Policies\Explorer下在右边的窗口中新建DWORD值“NoNetSetup",并设其值为“1”。禁止在“网络”中显示“标识”属性
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion\Policies\Network下在右边的窗口中新建DWORD值“NoNetSetupIDPage”,并设其值为“1”。禁止在“网络”中显示“整个网络”属性
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion\Policies\Network下在右边的窗口中新建DWORD值“NoEntireNetwork”,并设其值为“1”。 快捷菜单类
为右键菜单增加“在新窗口中打开”的命令
我们往往在“文件夹选项”中选择了在同一窗口中打开文件夹 ,但我们在浏览文件夹的时候,有时想比较一下两个文件夹的不同,或想开多个窗口浏览文件夹内容,可用到下面的方法。
逐渐展开到HKEY_LOCAL_MACHINE\Software\CLASSES\Directory\shell
下, 创建一个主键“NewWindow”在右边窗口中把“默认”的值改为:“在新窗口中打开” ,并在此主键“NewWindow”下创建一个主键“command”,单击“command”,在右边窗口中把“默认”的值改为“explorer.exe %1"。为“回收站”右键菜单增加“删除”和“重命名”的命令
在HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder下 修改右边的窗口中的二近制值"Attributes",设其值为"70 01 00 20"。修改鼠标右键弹出菜单
当我们单击C,D盘,然后点击鼠标右键,会弹出菜单(如左图)
要把Browse wth ACDSee去掉,打开HKEY_CLASSES_ROOT\Drive\shell我们可看到有主键
Browse with ACDSee,
把该主键删除,即可把菜单中的Browse with ACDSee去掉。
在gif类型的文件名上点击鼠标右键弹出的菜单在HKEY_CLASSES_ROOT\GIFFILE\SHELL中,可按上述方法
修改。 在cda类型的文件名上点击鼠标右键弹出的菜单在HKEY_CLASSES_ROOT\CDAFILE\SHELL中,可按上述方法修改。
要找某种类型的菜单中,可在HKEY_CALSSES_ROOT\???FILE\SHELL,
???代表所要找的文件类型。为文件夹的右键菜单添加运行DOS的命令
在HKEY_CLASSES_ROOT\Directory\shell下创建一个主键“CommandPrompt”,在右边窗口中把 “默认”的值改为:“Command”(或你喜欢的字符,此字符将显示在右键菜单中)并在此主键 下创建一个主键“command”,在右边窗口中把“默认”的值改为“command.com /k cd "%1"。输入汉字时自动添加一个空格
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion下可以看到有全拼,微软拼音,英文,智能ABC等等输入法,单击某个输入法的主键,我们可以看到在右边的窗口中有“插空格”这个DWORD值,其值为“0”时表示不添加空格,为“1”时则表示输入汉字时自动添加一个空格。改变输入法的排列顺序
我们按Ctrl+Space选择输入法时往往要切换几次才能找到我们所须的输入法,输入法的排列顺序如图
要改变顺序可通过修改注册表。在HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Control\Keyboard Layouts下有关于键盘和输入法的主键,其主键和输入法对应如下:在HKEY_USERS\.DEFAULT\keyboard layout\preload下有1,2,3,4......等主键
1,2,3,4.....则代表输入法的排序,单击1,2,3,4....可在右边的窗口中看到相应的输入法的键值,改动键值,即可改变输入法的顺序。增加“快速启动”的选项
在HKEY_LOCAL_MACHINE\Software\CLASSES\Directory
\shell下新建主键“快速启动系统”,在右边的窗口中修改“默认”为“快速启动系统”在HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\DIRECTORY
\SHELL\快速启动系统 下,新建主键"COMMAND",在右边的窗口中修改“默认”为"C:\WINDOWS\RUNDLL.EXE USER.EXE,EXITWINDOWSEXEC"。增加“关闭系统”的选项
在HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\DIRECTORY\SHELL下
新建主键"快速关闭电脑",在右边的窗口中"默认"为"快速关闭电脑"。
在HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\DIRECTORY
\SHELL\快速关闭电脑 下,新建主键"COMMAND",在右边的窗口中修改“默认”为"C:\WINDOWS\RUNDLL.EXE USER.EXE,EXITWINDOWS".
给“控制面板”改名、改图标
在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{21EC2020-3AEA-1069-A2DD-08002B30309D}下在右边的窗口中修改字符串值“(默认)”为新的名称改图标:在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{21EC2020-3AEA-1069-A2DD-08002B30309D}\DefaultIcon下,在右边的窗口中修改字符串值“(默认)”为新图标的路径。更改“打印机”图标
在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{2227A280-3AEA-1069-A2DE-08002B30309D}\DefaultIcon
下,在右边的窗口中修改字符串值“(默认)”为新图标的路径。更改Internet Explorer的图标
在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{871C5380-42A0-1069-A2EA-08002B30309D}\DefaultIcon下,在右边的窗口中修改字符串值“(默认)”为新图标的路径,如:“C:\w.ico,0”。在桌面上显示WINDOWS版本标志
HKEY_USERS\.DEFAULT\Control Panel\desktop
在右边的窗口中新建一个字符串值:“PaintDesktopVersion”,并设其值为“1”。禁止在桌面上显示图标
我们安装了许多软件后,往往会在系统的桌面上出现许多图标,点击这些图标可以启动相应的软件程序,过多的图标使桌面变得花花绿绿,想恢复原来清洁的桌面,又不想删除这些图标,就可以使用一下的方法,把桌面上的所有图标都隐藏起来。
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion\Policies\Explorer下在右边的窗口中新建一个DWORD值:“NoDestop”,并设其值为“1”。禁止显示提示
当我们把鼠标指向“我的电脑”,“我的文件夹”,“回收站”等图标时往往会出现一些提示信息,这些 信息对一个熟悉WINDOWS的操作者来讲,是不必要的,我们想禁止显示这些提示,可使用下面的方法。
在HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
\CurrentVersion\Explorer\Advanced下在右边的窗口中修改DWORD值“ShowInfoTip”,设其值为“0”。禁止使用任务栏
在HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Policies\Explorer下 在右边的窗口中新建一个DWORD值:“NoSetTaskBar”,并设其值为“1”。
此条技巧的作用是当我们在系统的任务栏上点击鼠标右键,再选择“属性”时,将会出现以下的提示信息: “本次操作由于这台计算机的限制而被取消。请与你的系统管理员联系”。 高彩色显示图标
当我们按照完windows后,windows的图标都是用位数较小的色彩来显示图标的,使用下面的方法可以用16位色显示图标,运行注册表编辑器,依次展开到 HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
在右边的窗口中找到字符串值:“Shell Icon BPP”,并设其值为“16”。改变图标大小
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
在右边的窗口中找到字符串值:“Shell Icon Size”,改变其值即改变图标大小,缺省值为“32”。进入WINDOWS98时显示欢迎提示
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\Run 在右边的窗口中新建一个字符串值:“Welcome”,设值为“Welcome.exe /R”。以12小时制显示时间
HKEY_USERS\.DEFAULT\Control Panel\International在右边的窗口中找到字符串值:“sTimeformat”,改其值为“h:mm tt”。给“回收站”改名、改图标
HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}
在右边的窗口中找到字符串值:“默认”,把“回收站”改为其它名称。
HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon
在右边的窗口中修改图标的路径。给“我的电脑”改名、改图标
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
在右边的窗口中找到字符串值:“默认”,把“我的电脑”改为其它名称。
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon
在右边的窗口中修改图标的路径。给“我的文档”改名、改图标
在右边的窗口中找到字符串值:“默认”,把“我的文档”改为其它名称。
HKEY_CLASSES_ROOT\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon隐藏快捷方式的小箭头
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
\CurrentVersion\Explorer\Shell Icons
在右边的窗口中新建字符串值:“29”,数据内容空白。禁止名称有“快捷方式”四个字
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer
在右边的窗口中新建一个二进制值“link”,并设其值为“00 00 00 00”。使用三键鼠标
在HKEY_LOCAL_MACHINE\SOFTWARE\Logitech\ouseWare
\CurrentVersion \SerialV \0000下 ,改为DoubleClick to 001。 更改WINDOWS系统的产品名
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion下 在右边的窗口中找到字符串值“ProductName”,更改键值即可。打开系统属性看看效果更改WINDOWS系统的用户名
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion下 在右边的窗口中找到字符串值“RegisteredOwner”,更改键值即可。打开系统属性看看效果。 安全篇预防BackDoor的破坏
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\Run 若在右边窗口中如发现了“Notepad”键值,就将它删除。预防WinNuke的破坏
在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\VxD\MSTCP下 在右边的窗口中新建或修改字符串“BSDUrgent”,设其值为0。预防KeyboardGhost的破坏
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
\CurrentVersion\RunServices下 如发现KG.EXE这一键值,就将它删除,并查找KG.exe文件和kg.dat文件,将它们都删除查找NetSpy黑客程序
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Run下, 在右边的窗口中寻找键"NetSpy",如果存在,就说明已经装有NetSpy黑客程序,把它删除.清理访问“网络邻居”后留下的字句信息
在HEKY_CURRENT_USER/Network/Recent下删除下面的主键。 取消登陆时自动拨号
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/
CurrentVersion/Network/RealModeNet下 修改右边窗口中的“autologon”为“01 00 00 00 00”。取消登录时选择用户
已经删除了所有用户,但登录时还要选择用户,我们要取消登录时选择用户,就要在HKEY_LOCAL_MACHINE\Network\Logon下在右边的窗口中,修改"UserProfiles"值为"0"。隐藏上机用户登录的名字
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\Winlogon下 在右边的窗口中新建字符串"DontDisplayLastUserName",设值为"1"。 图标篇
更改网络工作组图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons下在右边的窗口中新建字符串值"2",并设其值为新图标的路径。更改WEB文件夹图标
在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{BDEADF00-C265-11D0-BCED-00A0C90AB50F}\DefaultIcon下,在右边的窗口中修改"默认"为新图标的路径。更改DOS程序的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons下,在右边的窗口中新建字符串值"2",并设其值为新图标的路径。
更改5寸软盘的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"5",并设其值为新图标的路径。更改可移动驱动器的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Icons下
下,在右边的窗口中新建字符串值"5",并设其值为新图标的路径。更改"注销"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"44",并设其值为新图标的路径。更改"运行"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"24",并设其值为新图标的路径。更改"关闭系统"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"27",并设其值为新图标的路径。更改"收藏夹"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"43",并设其值为新图标的路径。更改"查找"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons下,在右边的窗口中新建字符串值"22",并设其值为新图标的路径。更改"开始"菜单中"程序"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons下,在右边的窗口中新建字符串值"19",并设其值为新图标的路径。更改pbl文件的图标
在HKEY_CLASSES_ROOT下查找键值"pblfile", 并在这个主键的\DefaultIcon,修改右边窗口中的“默认”值为新图标的路径.更改Internet Explorer的图标
在HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID
\{871C5380-42A0-1069-A2EA-08002B30309D}\DefaultIcon下,在右边的窗口中修改字符串值“(默认)”为新图标的路径,如:“C:\w.ico,0”。更改"打开的文件夹"的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"4",并设其值为新图标的路径。更改3寸软盘的图标
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\explorer\Shell Icons 下,在右边的窗口中新建字符串值"6",并设其值为新图标的路径。
RegCloseKey
RegConnectRegistry
RegCreateKey
RegCreateKeyEx
RegDeleteKey
RegDeleteVale
RegEnumKey
RegEnumKeyEx
RegFlushKey
RegGetKeySecurity 是
RegLoadKey
RegNotifyChangeKeyvalue 是
RegOpenKey
RegOpenKeyEx
RegQueryInfoKey
RegQueryvalue
RegqueryvalueEx
RegReplaceKey
RegRestoreKey 是
RegSaveKey
RegSetKeySecurity 是
RegSetvalue
RegSetvalueEx
RegUnLoadKey
下面我针对我们经常用到的函数分别进行详细的介绍。 API经历和发展了很多年啦,因此,有些函数已经重复啦。比如RegSetvalue()及 RegSetvalueEx()都是用来设置注册表键值的。两者的区别在于前者是设置注册表键的默认值,仅支持作为数据类型的字符串,而后者不仅继承了前者的所有功能而且还能对多值或类型进行操作。一般API对比比较新的函数都回在后缀追加“Ex”的同样名称函数,建议在编程中均应尽可能的使用高级函数。而初级函数是向上兼容的。与其他程序相同,对注册表的编程也要用到句柄。通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值,在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语根一级键的保留句柄。HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER。这些都是与注册表的根键相对应并且同名的句柄。当访问一个根键的时候,传递这些通用句柄。这就不用打开根键啦,因为他们总是在打开状态下,可使用默认键的句柄访问。前面说了这么多的准备工作。下面我们来说说函数吧。1.RegCloseKey()原型:RegCloseKey(HKEY hKey)解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果。关闭一个键后,句柄变为非法,以使其不可再次被使用。为系统重新使用而释放句柄。例子:BOOL bRet = TRUE;if( m_hKey == NULL )return( FALSE );bRet = ( ::RegCloseKey( m_hKey ) = = ERROR_SUCCESS );m_hKey = NULL;return( bRet );2.RegCreateKeyEx()原型:RegCreatKeyEx(HKEY_CURRENT_SURE,“Software\\RegApp\\1.0”,0,”RegApp”,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hkeyNew,&dwDisposition)解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。当在创建或打开注册表的键时,需要指定访问权限,而这些访问权限需要到一级。默认的权限是KEY_ALL_ACCESS权限。还有KEY_CREATE_LINK创建字符链权限,KEY_CREATE_SUB_KEY创建子键权限,KEY_EXECUTE读取键权限,KEY_NOTIFY获得修改键通知的权限,KEY_QUERY_value查询键值的权限,KEY_SET_value设置数据值的权限。注意不能在根一级建键,在注册表的根一级仅可有预定义的键。例子:HKEY hOpenedKey;DWORD dwDisposition;DWORD dwLastError;BOOL bRet = ( ::RegCreateKeyEx( hKey, lpszSubKey, 0, (char *) lpszClass, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hOpenedKey, &dwDisposition ) = = ERROR_SUCCESS );if( bRet ) ::RegCloseKey( hOpenedKey );dwLastError = GetLastError();return( bRet );3.RegDeleteKey()原型:RegDeleteKey(HKEY hKey,LPCTSTR lpsubKey)解释:RegDeleteKey()看名字也能知道,他是用来删除注册表中的一个键值的。有是对注册表的操作需要经常的创建和删除,删除的参数只有两个,hKey代表根键的句柄,而lpsubKey是该键的名称。在用此函数时需要注意98与NT的差异。在NT中在删除一个键之前,要求必须删除所有子键,需要从下向上递归删除所有子键,而WINDOWS98没有他那么复杂,只要删除键及其所有子键就可以啦。例子:BOOL bRet;DWORD dwLastError;bRet = ( ::RegDeleteKey( hKey, lpszSubKey ) == ERROR_SUCCESS );dwLastError = GetLastError();在说到读写操作前,先让我们来了解一下他的数据类型吧。regedit注册表有3种数据类型:字符串,二进制值,DWORD值。而实际在WINDOWS98,NT中要支持多种数据类型,当数据超过2KB的时候,注册表不会把他保存到注册表内而是使用注册表值指向数据文件。而WIN32的值类分以下几种REG_BINARY 二进制数据,REG_DWORD32位双字,REG_NONE未定义值类型,REG_SZ空字符串,是保存字符串的最通用格式。 上篇我们说到数据类型。在注册表内只用到了这三种数据类型,还有其他的类型,但是不常用在这里我就不介绍啦。当使用到RegSetvalue()来创建键的时候,VC会提供一些数据类型以及这些数据的数据指针,便于对键值的操作,而用户的程序可以保存二进制的任意类型,比如:结构类型,32值以及字符串等等。有一点需要注意,在编写WIN3.X程序时,注册表只支持REG——SZ类型的数据,这是在编程当中要注意的。
在对数据类型有一定的了解以后,我们来看看如何对键值的管理。我们上篇已经讲过如何建键,如何打开一个已知的键以及如何删除他。而对键的操作要与我们上面讲到的数据类型来结合,你才能理解,下面函数的原型。4.RegQueryvalueEx()
原型:LONG RegQueryvalueEx(
HKEY hKey;
LPTSTR lpvaluename;
LPDWORD lpReserved;
LPDWORD lpType;
LPBYTE lpData;
LPDWORD lpcbData;
)
解释:返回指示注册表键的数据以及类型
例子:DWORD dwSize = (DWORD) nSize;
BOOL bRet = (::RegQueryvalueEx( m_hKey, lpszvalueName, NULL, NULL, (unsigned char *) lpReturnBuffer, &dwSize ) == ERROR_SUCCESS );
m_dwLastError = GetLastError(); 现在我们说到的这些函数都是对注册表进行管理的,而这个函数以及下面的函数在操作时候,是通过所需注册表的句柄来实现的。注册表的句柄由调用RegOpenKeyEx()和RegCreateKeyEx()函数得到的。而这个函数是用来读取注册表的一个已知的键值的。用这个函数可以得到所需键值的名称,并且返回一个数据,数据长度和数据类型。但是在这之前必须先获得这个注册表的句柄,句柄是通过RegOpenKeyEx()与RegCreateEx()函数来获得,当需要设置和修改时,用户调用这个函数。但是有一点要注意的是,为了使该函数可以访问,必须使用KEY_SET_value权限来打开键。(这个权限是在RegCreateEx()或RegOpenKeyEx()函数内设置的)5.RegOpenKeyEx()
原型:WINADVAPI LONG APIENTRY RegOpenaKeyEx(HKEY hKey,
LPCTSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesired,
PHKEY phkResult);
解释:打开指定的键或子键。返回的句柄用于进一步的访问。应使用RegCloseKey()关闭每个打开的键。
例子:HKEY hKey;
const char *lpszSubKey
::RegOpenKeyEx( hKey,
lpszSubKey,
0,
KEY_ALL_ACCESS,
&m_hKey ) 这个函数没有什么好讲的。他的意思和他的名字一样好理解。就是打开一个给定正确路径的键或子键。我对这个函数简单的解释一下。hKey 在这里是根键的意思比如:HKE_CLASSES_ROOT,lpSubKey是指子键的名称,ulOptions是指定值,通常被定义为0,samDesired是指访问类型,不同的访问类型有不同的操作效果。PhkResult是指通过RegOpenKeyEx()函数来的到注册表的句柄,在通过句柄来进行操作。
------------------------------------------------------------------------------------------
以上摘自www.cppcn.com
很多介绍注册表的书只是介绍了注册表的结构和修改实例而已,没有讲解原理啊,请各位推荐一些网址和EBOOK