在注册表写入+读取当前软件的语言版本号+路径信息

{
DWORD pCount=1024;
TCHAR szValue[1024];
CString str;
CRegKey reg;
if ( ERROR_SUCCESS==reg.Create(HKEY_CURRENT_USER, _T("Software//Leyard")))
{

if (ERROR_SUCCESS==reg.QueryValue(szValue, _T("Language"), &pCount))
{
str.Format(_T("%s"), szValue);
}
else
{
str = _T("0");
reg.SetValue(str, _T("Language"));
}
}
return str;
}

void CLeadShowApp::SetLanguagePara(CString str)
{
CRegKey reg;
if ( ERROR_SUCCESS==reg.Create(HKEY_CURRENT_USER, _T("Software//Leyard")))
{
reg.SetValue(str, _T("Language"));
}
}




BOOL CLeadShowApp::SetAppPath(CString strSysPath)
{
HKEY hk;
if ( ::RegCreateKey( HKEY_CURRENT_USER, _T("SOFTWARE//Leyard//"), &hk ) != ERROR_SUCCESS )
{
//AfxMessageBox( "打开注册表失败" );
return FALSE;
}

strSysPath = strSysPath+_T("SuperEdit.exe");
LPBYTE BYTECtrlPath = (LPBYTE)strSysPath.GetBuffer(0);
DWORD Len = strSysPath.GetLength() +1;
DWORD type = REG_SZ;
LONG ret1 = ::RegSetValueEx(hk,_T("SuperEdit"),NULL,type,BYTECtrlPath,Len);
if (ret1 != ERROR_SUCCESS)
{
//MessageBox("错误: 无法修改有关注册表信息!");
::RegCloseKey(hk);
return FALSE;
}
::RegCloseKey(hk);
return TRUE;
}

CString CLeadShowApp::GetAppPath()
{
HKEY hk;
if ( ::RegOpenKey( HKEY_CURRENT_USER, _T("SOFTWARE//Leyard//"), &hk ) != ERROR_SUCCESS )
{
//AfxMessageBox( "打开注册表失败" );
return _T("");
}

TCHAR GetLan[80];
memset(GetLan,0,80);
CString SysPath;

DWORD Len = 80;
DWORD type = REG_SZ;
LONG ret1 = ::RegQueryValueEx(hk, _T("SuperEdit"),NULL,&type,(LPBYTE)GetLan,&Len);
if (ret1 != ERROR_SUCCESS)
{
//MessageBox("错误: 无法读取有关注册表信息!");
::RegCloseKey(hk);
return _T("");
}
::RegCloseKey(hk);
//CString str = (char *)GetLan;
SysPath.Format(_T("%s"), GetLan/*str.GetBuffer(0)*/);

return SysPath;
}

转载于:https://www.cnblogs.com/carl2380/archive/2012/01/09/2317352.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#程序 实现如下功能: 1. 读取注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\下shell的值保存为字符串strShell,strShell的字符串格式举例为"C:\2.4.7460\autostart.exe doctorold.exe"; 2. 将strShell识别字符串路径(例如C:\2.4.7460\)并保存为strPath; 3. 读取当前目录下的DoctorOld.exe文件版本只保留前三段版本号(例:2.4.7460.12546保留2.4.7460)保存为字符串strNewVer; 4. 读取strPath目录下的DoctorOld.exe文件版本只保留前三段版本号(例:2.4.7460.12546保留2.4.7460)保存为字符串strOldVer; 5. 新建"C:\"+strNewVer文件夹,其包括判断是否存在,进行提示“版本相同是否进行强制更新”,如果强制更新则将旧文件夹进行重命名,重命名规则为在文件夹后加当前时间,将新文件夹路径给strPath赋值; 6. 复制当前目录内所有文件和文件夹至"C:\"+strNewVer; 7. 复制strPath目录下的1.txt、2.txt、3.txt文件至"C:\"+strNewVer直接覆盖; 8. 查找strShell是否含有“Doctorold.exe”、"Nurse.exe"、"USVoltDlg.exe"、"Water.exe",分别存布尔型变量; 9. 如果含有“Doctorold.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe doctorold.exe"; 10. 如果含有“Nurse.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe Nurse.exe"; 11. 如果含有“Water.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe Water.exe"; 12. 如果含有“USVoltDlg.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe USVoltDlg.exe"; 13. 打开“C:\”路径下名为“UpdaterLog.txt”文本文档,在文件最后行添加:当前日期+时间+“:”+strOldVer+"-->"+strNewVer; 14. 将上述执行每一步骤及结果保存至名为strNewVer.log的文件
05-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值