杉宫竹苑工作室

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

Inno Setup 从注册表获取安装路径、版本号

[复制链接]
发表于 2017-1-9 20:30:28 | 显示全部楼层 |阅读模式

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

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

x

  1. function GetPath(Param: String): String;        // 读取 MS Office 安装路径
  2. var
  3.   i: Integer;
  4.   strPath: String;
  5.   subkeynames1: TArrayOfString;
  6. begin
  7.   strPath:=ExpandConstant('LH-U');
  8.   if RegGetSubkeyNames(HKLM32, 'SOFTWARE\Microsoft\Office', subkeynames1) then
  9.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  10.       if RegKeyExists(HKLM32, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\InstallRoot') then
  11.         if RegQueryStringValue(HKLM32, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]++'\common\InstallRoot', 'Path', strPath) then
  12.           strPath:=strPath;
  13.   if RegGetSubkeyNames(HKLM64, 'SOFTWARE\Microsoft\Office', subkeynames1) then
  14.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  15.       if RegKeyExists(HKLM64, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\InstallRoot') then
  16.         if RegQueryStringValue(HKLM64, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]++'\common\InstallRoot', 'Path', strPath) then
  17.           strPath:=strPath;
  18.   Result:= strPath;
  19. end;

  20. function Getversion(Param: String): String;   //读取 MS Office 主版本号
  21. var
  22.   i: Integer;
  23.   oversion: String;
  24.   subkeynames1: TArrayOfString;
  25. begin
  26.   oversion := ExpandConstant('LH-U');
  27.   if RegKeyExists(HKLM32, 'SOFTWARE\Microsoft\Office') then
  28.     begin
  29.       if RegGetSubkeyNames(HKLM32, 'SOFTWARE\Microsoft\Office', subkeynames1) then
  30.         for i:= 0 to GetArrayLength(subkeynames1)-1 do
  31.           if RegKeyExists(HKLM32, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\ProductVersion') then
  32.             if RegQueryStringValue(HKLM32, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\ProductVersion', 'LastProduct', oversion) then
  33.               oversion:=copy(oversion,1,pos('.', oversion)-1);
  34.     end;
  35.   if RegKeyExists(HKLM64, 'SOFTWARE\Microsoft\Office') then
  36.     begin
  37.       if RegGetSubkeyNames(HKLM64, 'SOFTWARE\Microsoft\Office', subkeynames1) then
  38.         for i:= 0 to GetArrayLength(subkeynames1)-1 do
  39.           if RegKeyExists(HKLM64, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\ProductVersion') then
  40.             if RegQueryStringValue(HKLM64, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common\ProductVersion', 'LastProduct', oversion) then
  41.               oversion:=copy(oversion,1,pos('.', oversion)-1);
  42.     end;
  43.   Result:= oversion;
  44. end;

  45. function GetPathII(Param: String): String;       //读取 WPS Office 安装路径
  46. var
  47.   i: Integer;
  48.   strPath: String;
  49.   subkeynames1: TArrayOfString;
  50. begin
  51.   strPath:=ExpandConstant('LH-U');
  52.   if RegGetSubkeyNames(HKLM32, 'SOFTWARE\Kingsoft\Office', subkeynames1) then
  53.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  54.       if RegKeyExists(HKLM32, 'SOFTWARE\Microsoft\Office\'+subkeynames1[i]+'\common') then
  55.         if RegQueryStringValue(HKLM32, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common', 'InstallRoot', strPath) then
  56.             strPath:=strPath;
  57.   if RegGetSubkeyNames(HKLM64, 'SOFTWARE\Kingsoft\Office', subkeynames1) then
  58.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  59.       if RegKeyExists(HKLM64, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common') then
  60.         if RegQueryStringValue(HKLM64, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common', 'InstallRoot', strPath) then
  61.             strPath:=strPath;
  62.   Result:= strPath;
  63. end;

  64. function GetversionII(Param: String): String;       //读取 WPS Office 主版本号
  65. var
  66.   i: Integer;
  67.   oversion: String;
  68.   subkeynames1: TArrayOfString;
  69. begin
  70.   oversion:=ExpandConstant('LH-U');
  71.   if RegGetSubkeyNames(HKLM32, 'SOFTWARE\Kingsoft\Office', subkeynames1) then
  72.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  73.       if RegKeyExists(HKLM32, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common') then
  74.         if RegQueryStringValue(HKLM32, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common', 'Version', oversion) then
  75.             oversion:=copy(oversion,1,pos('.', oversion)-1);
  76.   if RegGetSubkeyNames(HKLM64, 'SOFTWARE\Kingsoft\Office', subkeynames1) then
  77.     for i:= 0 to GetArrayLength(subkeynames1)-1 do
  78.       if RegKeyExists(HKLM64, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common') then
  79.         if RegQueryStringValue(HKLM64, 'SOFTWARE\Kingsoft\Office\'+subkeynames1[i]+'\common', 'Version', oversion) then
  80.             oversion:=copy(oversion,1,pos('.', oversion)-1);
  81.   Result:= oversion;
  82. end;
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 18:44 , Processed in 0.108681 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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