完整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.exe和inf驅動文件放在同目錄下,直接點擊運行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. 5、6、7條均是DPInst命令行參數,具體可以參照下圖
https://download.csdn.net/download/wangxingxing321/10392692