杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2475|回复: 0

InstallShield脚本中如何启动某一程序

[复制链接]
发表于 2017-3-27 16:05:05 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这里我们以办公软件2003版本为实例,首先判断目标机是否安装了Office 2003 Outlook,之后启动。
具体代码如下:

  1. function OnBegin()  
  2.     STRING svInstalledPath, szKeyRoot;
  3.     NUMBER nvSize, nType;
  4. begin  
  5.     RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );

  6.     szKeyRoot = "SOFTWARE\\Microsoft\\Office\\11.0\\Outlook\\InstallRoot";
  7.     nType = REGDB_STRING;
  8.    
  9.     if (RegDBKeyExist (szKeyRoot) < 0) then   
  10.         MessageBox ("RegDBKeyExist failed.", SEVERE);
  11.     else
  12.         if ( RegDBGetKeyValueEx (szKeyRoot, "Path", nType, svInstalledPath, nvSize) < 0 ) then
  13.             MessageBox ("RegDBGetKeyValueEx failed.", SEVERE);
  14.         else
  15.             LaunchAppAndWait(svInstalledPath + "Outlook.exe", "", NOWAIT);
  16.         endif;
  17.     endif;     
  18. end;
复制代码



在用RegDBGetKeyValueEx读取数据时,在给入的第三个参数中,我直接给了REGDB_STRING,结果编译报错(error C8046),只好先定义了一个NUMBER类型的变量nType,然后将nType给入才通过了编译。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-10 22:56 , Processed in 0.118184 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表