Setup Factory 7 注册
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
实例
*-----------------------------
SF7的注册表操作,以下是一个例子,主要靠点击各个按钮来进行控制。
主要有:创建键,删除键,创建键值,删除键值,读取注册表信息,判断是否有键值等。
if (e_MsgID == MSGID_CLICKED) then
-- 点击了控件...
if (e_CtrlID == CTRL_BUTTON_01) then
-- 在这里插入按钮控制代码,第一个按钮
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("创建", "您创建了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_02) then
-- 在这里插入按钮控制代码,第二个按钮
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("删除", "您删除了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_03) then
-- 在这里插入按钮控制代码,第三个按钮
Registry.SetV alue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", "字符串值", REG_SZ); Registry.SetV alue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", "11 00 11 12", REG_BINARY); Dialog.Message("创建键值", "您创建了两个个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_04) then
-- 在这里插入按钮控制代码,第四个按钮
Registry.DeleteV alue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1");
Dialog.Message("删除", "您删除了一个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_05) then
-- 在这里插入按钮控制代码,第四个按钮
RKEY1 = Registry.GetV alue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", true);
RKEY2 = Registry.GetV alue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", true);
SessionV ar.Set("%PA TCH1%", RKEY1);
SessionV ar.Set("%PA TCH2%", RKEY2);
-- 获得键值,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用Local 定义局部变量
TKEY1 = Registry.GetV alueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key1");
TKEY2 = Registry.GetV alueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key2");
SessionV ar.Set("%TYPE1%", TKEY1);
SessionV ar.Set("%TYPE2%", TKEY2);
-- 获得键值类型,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用Local 定
义局部变量
Screen.Next();
Screen.Back();
-- 这两个命令用于快速的闪回前进屏幕,以便让大家看清楚变化
Dialog.Message("获得键值", "您获得了两个注册表键值和他们的类型!", MB_OK, MB_ICONNONE); end
if (e_CtrlID == CTRL_BUTTON_06) then
-- 判断是否有一个键值
BUILD = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Build");
if (BUILD == true) then
Dialog.Message("注意", "该键值存在", MB_OK, MB_ICONINFORMA TION, MB_DEFBUTTON1); else if (BUILD == false) then
Dialog.Message("注意", "没有该键值", MB_OK, MB_ICONINFORMA TION, MB_DEFBUTTON1); end
end
end
end
/////////////////////////////////////////////VC 操作注册表////////////////////////////////////////////////////
void CRegeditDlg::OnQuery()
{
UpdateData(true);
HKEY h KEY;//定义有关的hKEY,在查询结束时要关闭
//打开与路径data_Set相关的hKEY
LPCTSTR data_Set="Softw are\\Mic rosoft\\Windows NT\\CurrentVersion\\";
//访问注册表,hKEY则保存此函数所打开的键的句柄
long
ret0=(::RegOpenKeyEx(HKEY_LO CAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
AfxMessageBox("错误:无法打开有关的hKEY");
return;
}
//查询有关的数据
LPBYTE ow ner_Get=new BYTE[80];//定义用户姓名ow ner_Get
DWORD type_1=REG_SZ;//定义数据类型
DWORD c bData_1=80;//定义数据长度
long
ret1=::RegQueryVa lueEx(hKEY,"Reg isteredOw ner",NULL,&type_1,ow ner_Get,&c bData_1);
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox("错误:无法查询有关的注册表信息");
return;
}
//查询公司名
LPBYTE c ompany_Get=new BYTE[80];//定义公司名称c ompany_Get
DWORD type_2=REG_SZ;//定义数据类型
DWORD c bData_2=80;//定义数据长度
long
ret2=::RegQueryVa lueEx(hKEY,"Reg isteredOrganization",NULL,&type_2,company_Get,&c b Data_2);
if(ret2!=ERROR_SUCCESS)
{
AfxMessageBox("错误:无法查询有关的注册表信息");
return;
}
//显示信息
m_strOw ner=CString(owner_Get);
m_strCompany=CString(c ompany_Get);
delete[] ow ner_Get;
delete[] c ompany_Get;
//程序结束,关闭打开的hKEY
::RegCloseKey(hKEY);
UpdateData(false);
}
////////////////////////////////////////////////////////////////
void CRegeditDlg::OnModify()
{
UpdateData(true);
HKEY h KEY;//定义有关的hKEY,在查询结束时要关闭
//打开与路径data_Set相关的hKEY
LPCTSTR data_Set="Softw are\\Mic rosoft\\Windows NT\\CurrentVersion\\";
//访问注册表,hKEY则保存此函数所打开的键的句柄
long
ret0=(::RegOpenKeyEx(HKEY_LO CAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
AfxMessageBox("错误:无法打开有关的hKEY");
return;
}
//设置有关的数据
//CString_To_LPBYTE,请参考下面的函数
LPBYTE ow ner_Set=CString_To_LPBYTE(m_strOwner);//定义用户姓名ow ner_Set DWORD type_1=REG_SZ;//定义数据类型
DWORD c bData_1=m_strOw ner.GetLength()+1;//定义数据长度
long
ret1=::RegSetVa lueEx(h KEY,"Reg isteredOwner",NULL,type_1,ow ner_Set,c bData_1);
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox("错误:无法设置有关的注册表信息");
return;
}
//查询公司名
LPBYTE c ompany_Set=CString_To_LPBYTE(m_strCompany);//定义公司名称
c ompany_Set
DWORD type_2=REG_SZ;//定义数据类型
DWORD c bData_2=m_strCompany.GetLength()+1;//定义数据长度
long
ret2=::RegSetVa lueEx(h KEY,"Reg isteredOrganization",NULL,type_2,c ompany_Set,c bData_2) ;
if(ret2!=ERROR_SUCCESS)
{
AfxMessageBox("错误:无法设置有关的注册表信息");
return;
}
else
{
AfxMessageBox("注册表修改完成");
}
//程序结束,关闭打开的hKEY
::RegCloseKey(hKEY);
UpdateData(false);
}