工控编程吧
标题:
370上位机VC MFC创建与删除子键
[打印本页]
作者:
qq263946146
时间:
2016-9-17 11:14
标题:
370上位机VC MFC创建与删除子键
(, 下载次数: 2)
上传
点击文件名下载附件
创建与删除子键
功能展示
如同对文件夹的操作一样,注册表也有创建与删除子键的操作,这也是注册表编程基础且常用的功能,我们当前实现注册表子键的创建及删除,效果如图。点击<创建子键>例程就会在根键
HKEY_CURRENT_USER下指定的子键内创建一个新的子键,点击删除按钮会删除这了新建的子键
要点提示
创建子键跟打开子键差不多,可以用RegCreateKeyEx函数来实现,
其原型如下:
RegCreateKeyEx(
hkey,//父键句柄
lpSubKey,//子键句柄
Reserved,//系统保留,指定为0
lpClass,//定义子键类名,通常设为NULL
dwOptions,//创建子键时的选项
samDesired,//创建后操作权限
lpSecurityAttributes,//指向SECURITY_ATTRIBUTES结构,指定键句柄的继//承性
phkResult,//返回创建句柄
lpdwDisposition//通常设为NULL
);
创建子键也可以用16位下的API函数RegCreateKey来实现。
删除一个键可以用RegDeleteKey()实现,它有两个参数原型如下:
RegDeleteKey(
hkey, //主键句柄
lpSubKey, //子键名称字符串
);
需要注意的是,?在创建子键时可以创建多级子键,比如:
RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\MyKey1\MyKey2",&KEY);
如果MyKey1不存在的话,那么它将先创建MyKey1,再创建MyKey2,这一点与文件系统中创建目录是不同的。但是删除的时候却不能删除多级子键。比如想删除MyKey1,那么必须先删除MyKey2才可以。不过一个子键下面的多个键值可以一次删除。
另外在WIN7系统上对注册表进行删除创建操作时,有时得注意权限问题;
实现功能
1.新建基于对话框的应用程序
2.添加一编辑框IDC_EDIT1用于要创建子键位置的输入,添加<创建子键><删除子键>关联点击函数,用于创建与删除输入的子键;
void CGkbc8Dlg::OnNew()
{
CString sSubKey;
GetDlgItemText(IDC_EDIT1,sSubKey);
if(sSubKey.IsEmpty()) return;
HKEY KEY;
if (ERROR_SUCCESS!=RegCreateKey(HKEY_CURRENT_USER,sSubKey,&KEY))
{
MessageBox("创建失败!");
}
else
{
MessageBox("创建成功!");
}
}
void CGkbc8Dlg::OnDelete()
{
CString sSubKey;
GetDlgItemText(IDC_EDIT1,sSubKey);
if(sSubKey.IsEmpty())
return;
int nResult=RegDeleteKey(HKEY_CURRENT_USER,sSubKey);
if(ERROR_SUCCESS==nResult)
AfxMessageBox("删除成功!");
else
AfxMessageBox("删除失败!");
}
3.最后为了输入的方便,我们可以在程序初始化时对编辑框进行简单的填充
SetDlgItemText(IDC_EDIT1,"Software\\Microsoft\\Windows\\CurrentVersion\\MyKey1");
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/ed6c146401e95ec4ccc7b768902a0af0/0/0/w_19rswmvydd.swf-albumId=6292763309-tvId=6292763309-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件 [weixinlianxi]1[/weixinlianxi]
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4