vcredist_x86.exe安装后是在注册表哪个键值?

微雨流光 2013-03-20 05:26:32
求助。

现在做了一个安装程序 在没装过VC的机器上会“应用程序正常初始化失败“的错误,无法打开。

需要安装vcredist_x86.exe、

想在安装步骤里加入判断软件先决条件的对话框,需要查找注册表,求助vcredist_x86.exe是看注册表哪个键值?
...全文
416 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Huaerge 2013-12-06
  • 打赏
  • 举报
回复
正好用到这个,谢谢楼主分享了
微雨流光 2013-03-28
  • 打赏
  • 举报
回复
引用 5 楼 jeryler 的回复:
XP系统下的键值:{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}
恩 我也找到这个键值了。 预安装如下:

function OnBegin() 
	NUMBER nResult;
	STRING dir;
begin
	dir =   SRCDIR;
	RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);  
	nResult = RegDBKeyExist ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{{9A25302D-30C0-39D9-BD6F-21E6EC160475}}");
	if (nResult < 0) then
	LaunchAppAndWait (SRCDIR^"soft\\vcredist_x86.exe","", LAAW_OPTION_WAIT);
	endif;

	// TO DO: you may change default non-UI setting, for example
	//
	// You may also perform your custom initialization steps, check requirements, etc.
end;
Saleayas 2013-03-27
  • 打赏
  • 举报
回复
既然是安装程序,那么就应该假定目标机器上没有安装任何东东。 你应该直接安装运行库。 InstallShield 作为预安装。 运行库安装包会自己判断的。
施黛 2013-03-27
  • 打赏
  • 举报
回复
XP系统下的键值:{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}
Dobzhansky 2013-03-25
  • 打赏
  • 举报
回复
已经安装的软件都在 LM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ 下可以找到, 每个产品的guid都是固定的. 使用注册表方式有问题, 就是在 64 os上, 你能访问到的注册表位置取决于你程序是 32 还是 64的. 操作系统会给你转向. 所以, 判断一个软件是否安装的最好方式, 还是使用 msi api 来做. 比如

bool
InstallPage::checkCADInstalled(LPCTSTR pszProductCode)
{
  bool found = false;
  if (pszProductCode && pszProductCode[0]) {
    MSIHANDLE hProduct = 0;
    UINT iRet = MsiOpenProduct(pszProductCode, &hProduct);
    bool flag = false;
    switch (iRet)
    {
    case ERROR_SUCCESS:
      flag = true;
      break;
    case ERROR_UNKNOWN_PRODUCT:
    case ERROR_INVALID_PARAMETER:
    case ERROR_INSTALL_SOURCE_ABSENT:
    case ERROR_INSTALL_FAILURE:
    case ERROR_BAD_CONFIGURATION:
    default:
      break;
    }
    if (flag) {
      found = true;
      MsiCloseHandle(hProduct);
    } else {
      GetManager()->ErrorBox(_T("检测失败"), _T("产品没有安装"));
    }
  }
  return found;
}
  • 打赏
  • 举报
回复
直接到winsxs目录看看有没有相应的文件在不在即可
微雨流光 2013-03-25
  • 打赏
  • 举报
回复
继续求助。
chuachua66 2013-03-20
  • 打赏
  • 举报
回复
推荐regmon,安的过程中看看注册表那里变了就是哪里呗,不过一般软件都在卸载那里有程序同名的键值,你可以找找

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧