Inno-Setup:安装后打开链接:打开链接时的防病毒警报

6 installation antivirus inno-setup

我正在使用inno设置构建一个安装程序,在安装后打开一个指向网站的链接目前看起来像这样:

[Run]
Filename: iexplore.exe; Parameters: http://doma.in/uri/ Verb: open; Flags: shellexec runasoriginaluser
Run Code Online (Sandbox Code Playgroud)

这种方法很好,除了测试显示,例如Kaskersky发出警告,未经授权的进程(设置)启动了一个想要访问加密密码的授权进程(Internet Explorer).哪(当然)可能是一种威胁.因为我只想打开一个浏览器来显示网址,所以摆脱这条消息会很棒.

这是我到目前为止评估的选项

  • 不幸的是,Run Filename:iexplore和Pascal Script Shell-Exec('open'...)之间没有区别?
  • 也许在某种程度上可以通过操作系统传递消息来创建webbrowser的新实例,而无需将其创建为子进程(即不触发警告).
  • 正如我为统计数据所做的那样,从设置中调用winhttp库就足够了.但这是不可行的,因为用户可能安装了防火墙(请参阅Inno安装脚本中的HTTP POST请求).
  • 签署设置有帮助吗?这会抑制警告吗?

Mik*_*ton 8

以下适用于我:

[Run]
Filename: "http://doma.in/uri/"; Flags: shellexec runasoriginaluser
Run Code Online (Sandbox Code Playgroud)


小智 5

在您的iss文件的末尾:

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
    ErrCode: integer;
begin
    if (CurStep=ssDone) then
    begin
        ShellExec('open', 'http://your.app.url/', '', '', SW_SHOW, ewNoWait, ErrCode);
    end;
end;
Run Code Online (Sandbox Code Playgroud)


Den*_*nis 5

Mike Sutton 指出的基本上是正确的,但您需要将 postinstall 添加到标志中。这将其设置为在安装完成后运行。此外,您还需要“描述”来告诉设置完成屏幕要为复选框显示什么内容。

[Run]
Filename: "http://doma.in/uri/"; Flags: shellexec runasoriginaluser postinstall; Description: "Open the url."
Run Code Online (Sandbox Code Playgroud)

如果您希望选择加入而不是选择退出,您也可以考虑使用未选中的标志。