标签: pascalscript

在 InnoSetup 中为开始菜单文件夹组设置图标

令我惊讶的是,我没有找到如何为前面的开始菜单应用程序组文件夹设置图标的解决方案。我正在寻找 InnoSetup 脚本中的自动解决方案。

先感谢您。

inno-setup menu pascalscript

5
推荐指数
1
解决办法
1855
查看次数

如何从Innosetup脚本修改exe.config

我自己开始学习Innosetup脚本.为此我创建了一个简单的C#控制台应用程序,它从配置文件中读取一个元素并输出到控制台.

<configuration>
  <appSettings>
    <add key ="Name" value="Brad Pitt"/> 
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

例如:它应通过查询键属性"Name"来读取值.

我希望从Innosetup安装脚本中写入.config中的值.

即在安装过程中我将收集名称(在这种情况下为"Brad Pitt")并将其写入配置文件的值

<add key ="Name" value="Brad Pitt"/> 
Run Code Online (Sandbox Code Playgroud)

问题是如何使用Pascal脚本或标准脚本实现此目的.

非常感谢任何指导

问候

跋蹉

inno-setup pascalscript

5
推荐指数
2
解决办法
6002
查看次数

如何在 Inno Setup 中检查端口是否可用?

我需要检查一些端口是否可用?如何在 Inno Setup 中做到这一点?有没有办法在 Inno Setup 中使用套接字?有没有这方面的图书馆?如果有如何导入并使用它?

谢谢您的回答。

inno-setup pascalscript

5
推荐指数
1
解决办法
1776
查看次数

如何检查变量是否为整数?

我正在使用 Inno Setup,并想使用 Pascal Script 检查字符串变量是否为整数(仅限 0-9,无十六进制)。我做了这个功能:

function IsInt(s: string): boolean;
var
  i, len: Integer;
begin
  len := length(s);

  if len = 0 then
    result := false
  else
  begin
    result := true;
    for i := 1 to len do
    begin
      if not (s[i] in ['0'..'9']) then  !!! ERROR HERE !!!
      begin
        result := false;
        exit;
      end;
    end;
  end;
end; 
Run Code Online (Sandbox Code Playgroud)

但编译器会抛出一个错误:

Closing square bracket (']') expected.
Run Code Online (Sandbox Code Playgroud)

如何修复它?

如果我将行更改为:

  if not (s[i] in ['0','1','2','3','4','5','6','7','8','9']) then
Run Code Online (Sandbox Code Playgroud)

它符合要求,但如果执行代码,则会出现以下错误:

Runtime Error - Invalid Type.
Run Code Online (Sandbox Code Playgroud)

该怎么办?

inno-setup pascalscript

5
推荐指数
1
解决办法
3346
查看次数

如何在 Inno Setup 中创建图像按钮?

Inno Wizard 页面中是否可以有一个图像按钮而不是纯标题文本?

我想要完成的是创建一个关闭/打开图像按钮,以在 Inno 安装程序运行时静音/播放音乐。

谢谢!

inno-setup pascalscript

5
推荐指数
1
解决办法
1039
查看次数

Inno Setup 迭代 Pascal 代码中的 [Files] 部分

在 Inno Setup 脚本中,我需要将多个文件复制到多个用户定义的位置。为了做到这一点,我想迭代该[Files]部分中的源,并FileCopy()根据用户定义的设置和文件属性多次迭代它们。

[Files]是否可以使用脚本访问该部分中的源代码?

loops inno-setup pascalscript

5
推荐指数
1
解决办法
1803
查看次数

Inno Setup ExtractTemporaryFile 导致向导冻结

我根据用户的选择制作了自定义页面来管理特定的 redist 工具安装。

如果用户想要或不安装这些工具,这些工具会链接到用户选中的复选框。然后出现一个页面,向用户展示每个工具的安装进度。

我在这里遇到的问题是,只有在ExtractTemporaryFile工具的第一个设置完成后才会显示进度页面,显示最后一个页面就好像它已经冻结一样。

我必须让进度页面在ExtractTemporaryFile发生之前显示的唯一方法是MsgBox在任何安装函数之前放置一个。但即使在这种情况下,ExtractTemporaryFile启动时,进度条动画也会冻结,直到ExtractTemporaryFile完成...

这是执行此操作的代码部分:

procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageID=PageInstallationPersonnalisee.ID then
    begin
      ProgressBarLabelPageInstPerso.Caption := 'Initialisation...';
      if InstallTool1 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool1...';
          F_InstallTool1();
        end;
      if InstallTool2 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool2...';
          F_InstallTool2();
        end;
      if InstallTool3 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool3...';
          F_InstallTool3();
        end;

      ProgressBarPageInstPerso.Style := npbstMarquee;
      //ProgressBarPageInstPerso.Style := npbstNormal;
      ProgressBarPageInstPerso.Position := 100;

      CancelWithoutPrompt:=True;
      WizardForm.Close;
    end;
end;
Run Code Online (Sandbox Code Playgroud)

请注意,ExtractTemporaryFile()是在每个 …

installation inno-setup freeze pascalscript

5
推荐指数
1
解决办法
1951
查看次数

在 Inno Setup 安装结束时写入 32/64 位特定注册表项

我想用 Inno Setup 创建一个安装程序,这是我第一次使用这个工具。
\n我\xe2\x80\x99m 试图做的是用更详细的自制安装程序(意味着Setup.exe 中的Setup.exe)包装现有软件的现有安装程序。

\n\n

到目前为止的研究对我有用的是要求安装程序(Inno Setup *.exe)运行包含的安装程序(实际的软件安装程序)。
\n为什么我需要另一个安装程序?因为我想给它一些额外的功能。

\n\n

特别是:我想在安装结束时添加一个注册表项,作为最后一步,适合相关的位系统(32/64 位)。这就是我请求专家帮助的地方。(主要关心的问题)

\n\n

我的问题详细如下:

\n\n
    \n
  1. 我设法使用 Inno Setup 部分添加密钥[Registry]。但是,[Registry]似乎总是在[Run]\xe2\x80\x93 之前运行,但我需要在安装后添加密钥(添加到安装本身创建的注册表路径中),而不是之前,所以我删除了已经起作用的内容(只是以错误的顺序) 在下面[Registry]。为了在主安装后完成 reg-add ,我发现了两个过程AfterInstallCurStepChanged/ ssPostInstallDeinitializeSetup这似乎不太适合我的担忧(但我想AfterInstall这就是我正在寻找的(?!),因为仅此而已应该是在之后,如果之前的安装已经失败(?!),我认为它不会运行。
  2. \n
  3. 我不知道在现有路径下添加注册表项(字符串)的 Pascal 语法。我可以将其添加到 下[Registry],但是当涉及到[Code]- 部分时,即使我现在对 Inno Setup 给定函数等做了很多研究,我也感到有点迷失。
  4. \n
  5. 第三个问题是注册表中的路径有所不同,具体取决于它是 32 位还是 64 位系统。所以我实际上需要一个额外的查询,在添加一个或另一个路径/键之前检查位系统(因为程序本身的安装已经根据位版本创建了路径),我找到了函数(IsWin64布尔值),现在尝试将函数(位版本查询)与过程(AfterInstall)混合起来,即使对我这样的初学者来说也是错误的。另外,我尝试创建一个 if-else-query,编译器告诉我我做错了。if IsWin64 then...有效,但添加 else 则无效。
  6. \n
\n\n

所以理论上的 …

registry installation inno-setup pascalscript

5
推荐指数
1
解决办法
4382
查看次数

在 Inno Setup 中使用 HTTP 请求获取 www/web 内容

有人可以告诉我如何在 Inno Setup Script 中获取 Pascal 代码中的 www 内容吗?

问候,
托马斯

inno-setup pascalscript

5
推荐指数
1
解决办法
3268
查看次数

Inno Setup 中自定义页面的顺序

我正在使用 Inno Setup。我想要两个自定义页面,例如:

var
 PasswordEdit: TPasswordEdit;
 UserEdit: TEdit;
 Page: TWizardPage;
 Page2: TWizardPage;
...
 Page := CreateCustomPage(wpWelcome, 'Page1', '');
 Page2 := CreateCustomPage(wpWelcome, 'Page2', '');
Run Code Online (Sandbox Code Playgroud)

而是Page2出现在面前Page。这是创建更多自定义页面的正确方法吗?

inno-setup pascalscript

5
推荐指数
1
解决办法
501
查看次数

标签 统计

inno-setup ×10

pascalscript ×10

installation ×2

freeze ×1

loops ×1

menu ×1

registry ×1