inno 區分win7 win8 win8.1 win10 x64 x86不同系統,安裝不同驅動檔案的指令碼編寫
阿新 • • 發佈:2018-11-03
完整inno指令碼下載連結
https://download.csdn.net/download/wangxingxing321/10392692一、為了簡化教程,我們使用inno打包的exe檔案是最簡單的HelloWorld.exe,如下圖 解釋:DPInst32.exe檔案是在32位系統執行的驅動安裝檔案 DPInst64.exe檔案是在64位系統執行的驅動安裝檔案 Drive資料夾放的是各系統的驅動檔案,如下圖
三 、用指令碼語言寫一個判別不同系統的函式,如下; 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命令列引數,具體可以參照下圖七 、完整inno指令碼可以用以下連結下載
https://download.csdn.net/download/wangxingxing321/10392692