Download Inno安装程序映像下载

Download Inno安装程序映像下载,download,inno-setup,pascal,Download,Inno Setup,Pascal,我正在使用Inno安装编译器(Pascal脚本)。 我的表单有一个图像对象(TBitmapImage),我想提供一个从web URL获得的动态图像。是否可以在Inno Setup scripting中以静默方式下载图像(或其他类型的文件)?Inno Setup没有任何内置功能,但是,您可以使用为您执行此操作的批处理文件来执行此操作 1) 下载命令行URL资源下载程序,如- 关于如何使用它的一些提示- 2) 将其打包到安装程序中 3) 创建一个批处理文件,该文件调用url2file.exe并将

我正在使用Inno安装编译器(Pascal脚本)。
我的表单有一个图像对象(TBitmapImage),我想提供一个从web URL获得的动态图像。是否可以在Inno Setup scripting中以静默方式下载图像(或其他类型的文件)?

Inno Setup没有任何内置功能,但是,您可以使用为您执行此操作的批处理文件来执行此操作

1) 下载命令行URL资源下载程序,如-

关于如何使用它的一些提示-

2) 将其打包到安装程序中

3) 创建一个批处理文件,该文件调用url2file.exe并将图像提取到应用程序目录中

4) 在Inno setup installer脚本的initialize setup命令中调用此批处理文件

5) 无论你想在哪里使用该图像

ps-如果在设置中使用图像,请检查是否允许加载不同的图像。。我对此不确定。
如果您有任何其他问题,请与我联系。Inno安装程序没有任何内置功能,但是,您可以使用为您执行此操作的批处理文件来执行此操作

1) 下载命令行URL资源下载程序,如-

关于如何使用它的一些提示-

2) 将其打包到安装程序中

3) 创建一个批处理文件,该文件调用url2file.exe并将图像提取到应用程序目录中

4) 在Inno setup installer脚本的initialize setup命令中调用此批处理文件

5) 无论你想在哪里使用该图像

ps-如果在设置中使用图像,请检查是否允许加载不同的图像。。我对此不确定。
如果您有任何其他问题,请告诉我

我将编写一个从Internet下载文件的Win32小程序,例如

program dwnld;

uses
  SysUtils, Windows, WinInet;

const
  PARAM_USER_AGENT = 1;
  PARAM_URL = 2;
  PARAM_FILE_NAME = 3;

function DownloadFile(const UserAgent, URL, FileName: string): boolean;
const
  BUF_SIZE = 4096;
var
  hInet, hURL: HINTERNET;
  f: file;
  buf: PByte;
  amtc: cardinal;
  amti: integer;
begin
  result := false;
  hInet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenUrl(hInet, PChar(URL), nil, 0, 0, 0);
    try
      GetMem(buf, BUF_SIZE);
      try
        FileMode := fmOpenWrite;
        AssignFile(f, FileName);
        try
          Rewrite(f, 1);
          repeat
            InternetReadFile(hURL, buf, BUF_SIZE, amtc);
            BlockWrite(f, buf^, amtc, amti);
          until amtc = 0;
          result := true;
        finally
          CloseFile(f);
        end;
      finally
        FreeMem(buf);
      end;
    finally
      InternetCloseHandle(hURL);
    end;
  finally
    InternetCloseHandle(hInet);
  end;
end;

begin

  ExitCode := 0;

  if ParamCount < 3 then
  begin
    MessageBox(0,
      PChar(Format('%s: This program requires three command-line arguments.',
        [ExtractFileName(ParamStr(0))])),
      PChar(ExtractFileName(ParamStr(0))),
      MB_ICONERROR);
    Exit;
  end;

  if FileExists(ParamStr(PARAM_FILE_NAME)) then
    DeleteFile(PChar(ParamStr(PARAM_FILE_NAME)));

  if DownloadFile(ParamStr(PARAM_USER_AGENT), ParamStr(PARAM_URL),
      ParamStr(PARAM_FILE_NAME)) then
    ExitCode := 1;

end.

然而,不幸的是,我不知道在运行时如何更改
向导图像文件

我会编写一个从Internet下载文件的Win32小程序,例如

program dwnld;

uses
  SysUtils, Windows, WinInet;

const
  PARAM_USER_AGENT = 1;
  PARAM_URL = 2;
  PARAM_FILE_NAME = 3;

function DownloadFile(const UserAgent, URL, FileName: string): boolean;
const
  BUF_SIZE = 4096;
var
  hInet, hURL: HINTERNET;
  f: file;
  buf: PByte;
  amtc: cardinal;
  amti: integer;
begin
  result := false;
  hInet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenUrl(hInet, PChar(URL), nil, 0, 0, 0);
    try
      GetMem(buf, BUF_SIZE);
      try
        FileMode := fmOpenWrite;
        AssignFile(f, FileName);
        try
          Rewrite(f, 1);
          repeat
            InternetReadFile(hURL, buf, BUF_SIZE, amtc);
            BlockWrite(f, buf^, amtc, amti);
          until amtc = 0;
          result := true;
        finally
          CloseFile(f);
        end;
      finally
        FreeMem(buf);
      end;
    finally
      InternetCloseHandle(hURL);
    end;
  finally
    InternetCloseHandle(hInet);
  end;
end;

begin

  ExitCode := 0;

  if ParamCount < 3 then
  begin
    MessageBox(0,
      PChar(Format('%s: This program requires three command-line arguments.',
        [ExtractFileName(ParamStr(0))])),
      PChar(ExtractFileName(ParamStr(0))),
      MB_ICONERROR);
    Exit;
  end;

  if FileExists(ParamStr(PARAM_FILE_NAME)) then
    DeleteFile(PChar(ParamStr(PARAM_FILE_NAME)));

  if DownloadFile(ParamStr(PARAM_USER_AGENT), ParamStr(PARAM_URL),
      ParamStr(PARAM_FILE_NAME)) then
    ExitCode := 1;

end.

然而,不幸的是,我知道没有任何方法可以在运行期间更改
WizardImageFile

实际上可以使用从web下载几乎任何内容。

实际上可以使用从web下载几乎任何内容