【Inno Setup】Inno 与 驱动文件的安装

关于Inno与驱动文件的安装涉及到驱动文件的几个问题:

1:驱动文件是否拥有正规的数字签名(GlobalSign 公司可以提供,一个数字签名每一年都需要交几千块的服务费,感觉小公司不是很划算

2:Inno安装包是否要在64和32位机器上都能运行

准备工具:适合不同系统的Devcon.exe 和DPInst.exe 的不同版本,xp、win7、win8、win10;32、64,保证这个工具能在目标系统上正常运行。不能运行就到微软官网上去下:

Devcon 在Windows Driver Kit集成开发安装程序下就能找到,在目标系统上安装对应的Windows Driver Kit就能找到适合的Devcon 

DPInst 在DiFx工具包中


1、对于有正规数字签名的驱动

#define MyAppNameStep "SMQH Drivers"
#define MyAppSoure "..\"
[Setup]
AppId={{D18BE24C-17FA-43FE-B107-429BF9B4906C}
AppName={#MyAppNameStep}

[Files]
;将所需文件复制到指定位置
Source: "{#MyAppSoure}\Tool\DPInst\DPInst64.exe"; DestDir: "{sys}"; DestName: DPInst.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\DPInst\DPInst64.exe"; DestDir: "{app}"; DestName: DPInst.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\Devcon\devconWin10x64.exe"; DestDir: "{sys}"; DestName: Devcon.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\Devcon\devconWin10x64.exe"; DestDir: "{app}"; DestName: Devcon.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: Is64BitInstallMode
;将关键文件复制到特定位置
Source: "{#MyAppSoure}\DriverFile\SMQH\x64\*"; DestDir: "{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs;          Check: Is64BitInstallMode
Source: "{#MyAppSoure}\DriverFile\SMQH\x64\my.sys"; DestDir: "{sys}\drivers"; Flags: ignoreversion recursesubdirs createallsubdirs;  Check: Is64BitInstallMode
Source: "{#MyAppSoure}\DriverFile\SMQH\x64\my.inf"; DestDir: "{win}\inf"; Flags: ignoreversion recursesubdirs createallsubdirs;    Check: Is64BitInstallMode
[Run]
Filename: "{sys}\DPInst.exe"; WorkingDir: {app};Parameters: "/path ""{app}"" /sw /se ";Check: Is64BitInstallMode 

2、对于没有正规数字签名或没有数字签名的驱动

#define MyAppNameStep "SMQH Drivers"
#define MyAppSoure "..\"
[Setup]
AppId={{D18BE24C-17FA-43FE-B107-429BF9B4906C}
AppName={#MyAppNameStep}

[Files]
;将所需文件复制到指定位置
Source: "{#MyAppSoure}\Tool\DPInst\DPInst32.exe"; DestDir: "{sys}"; DestName: DPInst.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: not Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\DPInst\DPInst32.exe"; DestDir: "{app}"; DestName: DPInst.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: not Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\Devcon\devconWin7.exe"; DestDir: "{sys}"; DestName: Devcon.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: not Is64BitInstallMode
Source: "{#MyAppSoure}\Tool\Devcon\devconWin7.exe"; DestDir: "{app}"; DestName: Devcon.exe;Flags: ignoreversion recursesubdirs createallsubdirs;Check: not Is64BitInstallMode
;将关键文件复制到特定位置
Source: "{#MyAppSoure}\DriverFile\SMQH\x86\*"; DestDir: "{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs;          Check: not Is64BitInstallMode
Source: "{#MyAppSoure}\DriverFile\SMQH\x86\my.sys"; DestDir: "{sys}\drivers"; Flags: ignoreversion recursesubdirs createallsubdirs;  Check: not Is64BitInstallMode
Source: "{#MyAppSoure}\DriverFile\SMQH\x86\my.inf"; DestDir: "{win}\inf"; Flags: ignoreversion recursesubdirs createallsubdirs;    Check: not Is64BitInstallMode
[Run]
Filename: "{sys}\devcon.exe"; Parameters: "dp_add  ""{app}\my.inf"" ";  Check: not Is64BitInstallMode 
Filename: "{sys}\devcon.exe"; Parameters: "update  ""{app}\my.inf"" USB\VID_1578&PID_0076";    Check: not Is64BitInstallMode 
Filename: "{sys}\devcon.exe"; Parameters: "rescan  ";   Check: not Is64BitInstallMode

其中:USB\VID_1578&PID_0076 是硬件ID或设备匹配ID,可以在inf文件中找到这个ID

3、如何使得Check: Is64BitInstallMode 生效,即如在控制32位或64位系统区别安装

[Setup]
ArchitecturesInstallIn64BitMode=x64

4、安装或卸载后是否需要重启

[Setup]
;yes 总是重启       
;no 根据其他段的情况提示是否要重启(比如某个文件设置了restartreplace,并且在安装时被锁定替换失败,就会提示要重启)
AlwaysRestart=yes
;yes 卸载时总是要求重启       
;no 卸载时根据情况提示是否需要重启
UninstallRestartComputer=yes  

5、单独安装INF文件

[Run]
Filename: "{cmd}"; Parameters: "/c ""{sys}\rundll32.exe  advpack.dll,LaunchINFSection {win}\inf\my.inf,外部参数调用""";Flags:hidewizard runhidden  ;   Check: Is64BitInstallMode 




评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值