inno 区分win7 win8 win8.1 win10 x64 x86不同系统,安装不同驱动文件的脚本编写

完整inno脚本下载链接


一、为了简化教程,我们使用inno打包的exe文件是最简单的HelloWorld.exe,如下图

解释:DPInst32.exe文件是在32位系统运行的驱动安装文件
      DPInst64.exe文件是在64位系统运行的驱动安装文件
      Drive文件夹放的是各系统的驱动文件,如下图

使用inno的安装向导,自动生成最简单的脚本如下(怎样使用inno安装向导就不详细写了,可以看我的下一篇博客)

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

#define MyAppName "My Program_wxx"
#define MyAppVersion "1.5_wxx"
#define MyAppPublisher "My Company, Inc._wxx"
#define MyAppURL "http://www.example.com/_wxx"
#define MyAppExeName "HelloWorld.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={{1D316271-706A-4217-834A-EEE2EC48E80F}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=D:\PackTemplet\license.txt
InfoBeforeFile=D:\PackTemplet\InfoBefore.txt
InfoAfterFile=D:\PackTemplet\InfoAfter.txt
OutputDir=D:\PackTemplet\Output
OutputBaseFilename=setup
SetupIconFile=D:\PackTemplet\home.ico
Compression=lzma
SolidCompression=yes

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

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

[Files]
Source: "D:\PackTemplet\ProjectRef\HelloWorld.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\PackTemplet\ProjectRef\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

用脚本语言写一个判别不同系统的函数,如下

[code]   
//Func: Get Windows Version
function MyGetWindowsVersion:String;  
var
  Version:TWindowsVersion;
begin
  GetWindowsVersionEx(Version);
  //windows10
  if(Version.Major = 10) and (Version.Minor = 0) then
  begin
      if (IsWin64) then
      begin 
         Result:='WIN10_64';
      end
      else
         Result:='WIN10_32';
      Exit;
  end;
  //windows8.1
  if(Version.Major = 6) and (Version.Minor = 3) then
  begin
      if (IsWin64) then
      begin 
         Result:='WIN81_64';
      end
      else
         Result:='WIN81_32';
      Exit;
  end;
  //windows8
  if(Version.Major = 6) and (Version.Minor = 2) then
  begin
      if (IsWin64) then
      begin 
         Result:='WIN8_64';
      end
      else
         Result:='WIN8_32';
      Exit;
  end;
  //Windows 7
  if(Version.Major = 6) and (Version.Minor = 1) then
  begin
      if (IsWin64) then
      begin 
        Result:='WIN7_64';
      end
      else
        Result:='WIN7_32';
      Exit;
  end;
  //Windows XP
  if(Version.Major = 5) and (Version.Minor = 10) then
  begin
    Result:='WINXP';
    Exit;
  end;
  //其它
  Result:='OTHER';
end;


解释:

1.判别系统:

函数:GetWindowsVersionEx(Version)

函数功能:获取当前系统的版本信息

详细使用:根据版本主版本号(Version.Major)和副版本号(Version.Minor),区分不同的系统。

2.判别系统位数:

函数:IsWin64

函数功能:判断当前系统是否是64位系统

3.不同系统版本号对照表,如下图

用脚本语言写一个判别当前系统是否是指定系统的函数,如下

function MySystemIs(WinVers: String): Boolean;
begin
Result := (MyGetWindowsVersion = Uppercase(WinVers));
end;

现在介绍使用DPInst.exe安装inf驱动的方法
一般用法:将DPInst.exeinf驱动文件放在同目录下,直接点击运行DPInst.exe,驱动文件会自动安装,安装成功界面如下

Inno安装完运行DPInst.exe程序,根据不同的系统安装驱动,脚本如下

[Run]
      ; 安装驱动程序
Filename: "{app}\dpinst64"; Parameters: "/path ""{app}\Drive\8_1_x64"" /sw /se"; Check: MySystemIs('WIN81_64')
Filename: "{app}\dpinst32"; Parameters: "/path ""{app}\Drive\8_1_x86"" /sw /se"; Check: MySystemIs('WIN81_32')
Filename: "{app}\dpinst64"; Parameters: "/path ""{app}\Drive\8_x64"" /sw /se"; Check: MySystemIs('WIN8_64')
Filename: "{app}\dpinst32"; Parameters: "/path ""{app}\Drive\8_x86"" /sw /se"; Check: MySystemIs('WIN8_32')
Filename: "{app}\dpinst64"; Parameters: "/path ""{app}\Drive\Win7 x64"" /sw /se"; Check: MySystemIs('WIN7_64')
Filename: "{app}\dpinst32"; Parameters: "/path ""{app}\Drive\Win7 x86"" /sw /se"; Check: MySystemIs('WIN7_32')
Filename: "{app}\dpinst64"; Parameters: "/path ""{app}\Drive\10_x64"" /sw /se"; Check: MySystemIs('WIN10_64')
Filename: "{app}\dpinst32"; Parameters: "/path ""{app}\Drive\10_x86"" /sw /se"; Check: MySystemIs('WIN10_32')

解释:

1.      [Run]Inno安装完运行指定程序

2.      Filename:"{app}\dpinst64"; 指运行的文件名称,

3.      {app}指软件安装路径

4.      Parameters:指运行dpinst64文件给dpinst64传的参数

5.      "/path""{app}\Drive\10_x86"指定dpinst.exe软件安装的驱动文件路径

6.      /sw 不显示设备安装向导,操作系统任然可以弹出对话框

7.      /se:不显示最终用户许可协议
8. Check: MySystemIs('WIN10_32'):检查系统是否是“WIN10_32”, MySystemIs('WIN10_32')是我们上面提到的判别当前系统是否是指定系统的函数
9 .      567条均是DPInst命令行参数,具体可以参照下图

、完整inno脚本可以用以下链接下载

https://download.csdn.net/download/wangxingxing321/10392692


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值