加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – Inno Setup – 如何在安装Google Chrome时告知安装,

发布时间:2020-12-13 20:32:34 所属栏目:Windows 来源:网络整理
导读:通过以下方式: https://productforums.google.com/forum/#!topic/chrome/8XnSOnhLBzA 去http://ninite.com/chrome/获得他们的chrome安装程序(但这并没有帮助我,因为我需要在安装Google Chrome后最终打开一个特定的网站) 现在我正在尝试自己使用Inno Setup,
通过以下方式: https://productforums.google.com/forum/#!topic/chrome/8XnSOnhLBzA

>去http://ninite.com/chrome/获得他们的chrome安装程序(但这并没有帮助我,因为我需要在安装Google Chrome后最终打开一个特定的网站)
>现在我正在尝试自己使用Inno Setup,以确保我和Ninite几乎相同
>一旦Inno Setup完成Google Chrome安装,我如何确保使用Google Chrome打开www.stackoverflow.com?

这是我的Inno Setup代码,在第3点没有正确执行:

>安装谷歌浏览器
>安装执行谷歌浏览器后
>但我怎么能告诉谷歌Chrome – 执行第一个链接:www.stackoverflow.com?

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company,Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "ChromeSetup (1).exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID,click Tools | Generate GUID inside the IDE.)
AppId={{FCF7940A-D96F-4A7A-9C69-C9DFE8BB308A}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=C:UserssunDesktopNieuwe map
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:Program Files (x86)Inno Setup 5ExamplesMyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:UserssunDownloadsChromeSetup (1).exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
Name: "{commondesktop}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName,'&','&&')}}"; Flags: nowait postinstall skipifsilent
以下可能有用,因为我所指的注册表项在 official docs中针对Chrome安装程序进行了描述.有一个注册表项直接包含chrome.exe文件的路径,因此它是恕我直言,是获取Chrome应用程序的最佳选择.文件名.这是关键:
<root>SoftwareMicrosoftWindowsCurrentVersionApp Pathschrome.exe

其中< root>是HKEY_LOCAL_MACHINE还是HKEY_CURRENT_USER注册表根目录,具体取决于是为当前用户安装了Chrome还是为整个系统安装了Chrome.

在以下脚本中,我使用上述密钥不仅可以获取Chrome应用.文件名,但即使是用于确定Chrome是否已安装:

[Files]
Source: "chrome_installer.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall

[Run]
Filename: "{tmp}chrome_installer.exe"; Check: not IsChromeInstalled
Filename: "{code:GetChromeFileName}"; Parameters: "www.stackoverflow.com"; 
    Check: IsChromeInstalled

[Code]
const
  ChromeAppRegKey = 'SoftwareMicrosoftWindowsCurrentVersionApp Pathschrome.exe';

function IsChromeInstalled: Boolean;
begin
  { check if there's the Chrome app registration entry under the HKCU,or }
  { HKLM root key,return the result }
  Result := RegKeyExists(HKEY_CURRENT_USER,ChromeAppRegKey) or
    RegKeyExists(HKEY_LOCAL_MACHINE,ChromeAppRegKey);
end;

function GetChromeFileName(Value: string): string;
var
  S: string;
begin
  { initialize returned value to an empty string }
  Result := '';
  { first attempt to read the Chrome app file name from the HKCU root key; }
  { if that fails,try to read the same from HKLM; if any of that succeed,}
  { return the obtained registry value }
  if RegQueryStringValue(HKEY_CURRENT_USER,ChromeAppRegKey,'',S) or
    RegQueryStringValue(HKEY_LOCAL_MACHINE,S)
  then
    Result := S;
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读