找了很多资料,查了很久都没有找到解决方案,后来在脚本之家一篇文章发现了解决方法,就解决问题了,
网站原文链接:https://www.jb51.cc/delphi/101877.html
本图文内容来源于网络收集整理提供,作为学习参考使用,版权属于原作者。
后面根据自己的需求更改了下如果下
1、在task段增加
[Tasks]
Name: "install_usb_1"; Description: "Install USB_1 drivers (USB_drivers1 Foundation)"; GroupDescription: "External drivers:";
Name: "install_usb_2"; Description: "Install USB_2 drivers (USB_drivers2 Foundation)"; GroupDescription: "External drivers:";
其中install_usb_1可以根据自己实际命名,Install USB_1 drivers、Install USB_2 drivers为要显示的内容
USB_drivers1 Foundation,USB_drivers2 Foundation也是要显示的内容,得到的效果如下
2、在run段增加
[Run]
Filename: "{app}\driver\USB_drivers1.exe"; StatusMsg: "Installing USB driver (USB_drivers1 Foundation)"; Check: Not IsWin64(); Tasks: install_usb_1; Flags: skipifsilent
Filename: "{app}\driver\USB_drivers2.exe"; StatusMsg: "Installing USB driver (USB_drivers1 Foundation)"; Check: IsWin64(); Tasks: install_usb_2; Flags: skipifsilent
需要注意的是Tasks: install_usb_1、Tasks: install_usb_2中的install_usb_1和install_usb_2必须和上面task命名一致,Check: Not IsWin64();可以不要,这个应该是用来检测系统位数的。
网站原文链接:https://www.jb51.cc/delphi/101877.html
这个网站使用的完整的代码如下,稍微琢磨下就可以更改像我上面的代码
[Tasks]
Name: "install_usb"; Description: "Install USB drivers (IVI Foundation)"; GroupDescription: "External drivers:";
[Run]
Filename: "{app}\driver\IviSharedComponents_2.2.1.exe"; StatusMsg: "Installing USB driver (IVI Foundation)"; Check: Not IsWin64(); Tasks: install_usb; Flags: skipifsilent
Filename: "{app}\driver\IviSharedComponents64_2.2.1.exe"; StatusMsg: "Installing USB driver (IVI Foundation)"; Check: IsWin64(); Tasks: install_usb; Flags: skipifsilent
以上是使用Inno Setup安装其他驱动或者依赖库的解决方案,另外我还用另一篇文章写使用Setup Factory安装其他驱动或者依赖库的解决方案,链接如下:https://blog.csdn.net/lxj362343/article/details/105490518
另外有其他博客写的添加另一种驱动的相关技术,
链接为:https://blog.csdn.net/chenlu5201314/article/details/54943946
使用bat脚本命令的编写一些脚本
https://www.cnblogs.com/xsgame/archive/2013/05/16/3082046.html
(1)Inno Setup调用bat文件.
在 [Files] 段里加上你自己的批处理文件,比如:
Source: "copy.bat"; DestDir: "{app}"; Flags: ignoreversion
在 [Run] 段里加上安装后的运行命令,比如:
|
(2)bat脚本命令的编写
需要判断系统是32或64位
@echo off
@title 判断是否需要复制mfc100.dll等
if exist C:\Windows\SysWOW64 (
echo "存在C:\Windows\SysWOW64"
if exist C:\Windows\SysWOW64\mfc100.dll (
echo "C:\Windows\SysWOW64\mfc100.dll已存在"
)else (
copy mfc100.dll C:\Windows\SysWOW64\mfc100.dll
)
) else (
if exist C:\Windows\System32\mfc100.dll (
echo "C:\Windows\System32\mfc100.dll已存在"
)else (
copy mfc100.dll C:\Windows\System32\mfc100.dll
)
)
本图文内容来源于网络收集整理提供,作为学习参考使用,版权属于原作者。
更多Inno Setup参数请参考官方文档:https://jrsoftware.org/ishelp/