请问一下怎么样确定注册表的键名和键值啊??难道是随便取的名字?
还是相应软件里面的变量设置?或者是系统本来就有的?那么系统又如何能够辨认相应的诸多的键呢?
真的不知道改注册表的时候怎么样加键名?
在线等待!!

解决方案 »

  1.   

    分菜单类
    禁用控制面板的“显示”设置项中的“外观”选项卡
    在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". 
      
      

  2.   

    桌面篇
    给“控制面板”改名、改图标
    在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",并设其值为新图标的路径。 
     
      

  3.   

    需要生成一个基本程序。你可以用MFC来生成单文档或对话框程序,如果你认为对C++的API够了解的话也可以自己生成主窗口,但是我建议生成对话框。在VC的MFC里也有对注册表操作的函数,但是我先给大家介绍一下API中有关注册表的函数。Win32 API提供了大约25个有关注册表的函数,他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。但是在编程的时候首先需要考虑你是在为什么操作系统编辑此类程序。你一定会问为什么要考虑呢?在微软的操作系统中我们常用有Windows NT,Windows 95,98,3.1等,现在常用的是NT和WIN98,虽然他们都是32位操作系统,但是在函数中有些不支持98,这点是要注意的。函数如下:函数名  非WIN98函数  
    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
      

  4.   

    许多和Windows显示有关的,微软都已经定义了。
      

  5.   

    那些和Windows有关的以定义的我又怎么能够知道呢?
    很多介绍注册表的书只是介绍了注册表的结构和修改实例而已,没有讲解原理啊,请各位推荐一些网址和EBOOK