近期收到一个需求,简单来说就是把某驱动程序打包为一个单独的setup.exe,方便使用。
由于之前并没有打包过驱动安装文件的经验,只是简单做过纯应用软件的打包,但是想来应该方法和步骤也差不多,于是研究了一下客户提供的驱动文件结构,也学习了一下windows驱动安装方面的知识,经过几天的尝试,终于找到了一个比较简便的方法。
这套驱动程序文件包含了.inf、.sys以及其他一些文件:

其中.inf和.sys是标准的windows驱动相关文件,这类驱动需要手动安装,首先插入设备,然后在系统的设备管理里面找到对应的设备,从设备属性里面查找驱动安装。
我们可以使用InstallShiled来制作安装程序,方法如下:
一 先下载并安装InstallShield,我这里使用的版本是2010

二 打开InstallShield,并在初始化页里面选择创建新的工程

三 选择工程类型为MSI类型,这个最适合常规的安装工程, 其他的类型功能更强大一些,可以通过脚本语言来定制安装过程,这里我们用最简单的。

四 工程配置

  1. 配置应用程序基本信息,主要是程序名称,版本,公司名称等。

  2. 安装要求都选择否

  3. 安装体系结构选择否

  4. 应用程序文件、应用程序快捷方式和注册表,我们都不使用,使用默认选择就好

  5. 安装问答界面,根据你自己的需求选定

  6. 本地化,其实就是多语言的问题,这里在列表前面勾选你需要支持的语言,这样在软件安装的时候就会出现语言选择框

  7. 接下来最重要的一步,就是选择驱动文件夹,对于驱动程序,InstallShiled有专门的向导,我们使用向导功能就可以,首先点击安装设计器->组织->安装设计,右键单击demo_files打开属性菜单,找到device driver wizard选项并打开

  8. 选择驱动文件,就是.inf文件,根据你的驱动文件在磁盘的路径自定义,需要把.inf和.sys以及其他驱动文件都放在同一个目录下面,System Architecture是设置编译出来的setup.exe运行在那种平台上,这个根据你的需要选择,我这里是 amd64位架构

  9. 下一步,向导会把所有驱动相关的文件列举出来

  10. 下一步,按照如下设置,勾选复选框

  11. 下一步,设置驱动的运行平台,这里同样选择64-bit系统,下一步直至完成。

五 构建工程

  1. 切换到工程助手界面,选择构建安装,并选择输出为单个可执行文件,最后点击构建安装按钮执行构建
  2. 查看InstallShield的日志, 如果没有错误,在工程目录下就有一个setup.exe的文件产生,这个就是最终的安装文件。

最后双击运行setup.exe,安装安装程序提示,一步步操作,以下是我制作出来的安装效果,不少地方还是可以定制化的。





至此一个驱动安装程序就做好了,是不是非常 easy ? 下一次再来谈一谈,如何把已经发布的setup.exe提取出驱动文件,然后修改软件名称,公司名称,版本,安装图标等,达到定制化目的。

以上仅限于技术学习讨论, 禁止用于商业目的。

利用installshiled打包.inf和.sys驱动文件到setup.exe的方法相关推荐

  1. windows7系统无法开机显示丢失volmgrx.sys驱动文件

    windows7断电后,显示丢失volmgrx.sys驱动文件,只需要下载该文件,通过pe替换文件,可以开机. 第一步.获取丢失文件,在下面链接中,可以下载到相应文件.要根据自己的系统版本,下载对应的 ...

  2. Python将py文件编译为exe的方法

    使用PyCharm工具写好的Python程序脚本,怎么将.py文件编译为可执行的.exe文件 前提是已经安装了Python环境. 第一步:在PyCharm内下载安装pyinstalle库或使用CMD安 ...

  3. 手动安装sys驱动文件_海龙工具的正确安装及卸载方法,自己动手丰衣足食

    海龙的安装以及卸载方法非常简单,掌握了随时随地任意电脑都可开启高效高质的绘图方式.把打开潘多拉正版海龙功能的钥匙牢牢地掌握在自己手中吧! ⬇⬇⬇按需浏览,重点标星★ 一.下载海龙安装包/CAD版本 二 ...

  4. u盘安装linux找不到驱动,利用U盘加载控制器驱动来安装Linux系统的方法

    一般我们在安装服务器过程中需要加载一些scsi卡或raid卡驱动,以便操作系统可以检测到硬盘. 常规的安装方式是要用到软驱,其实我们也是可以通过U盘来进行加载的. 装Linux控制器驱动往往都是*.d ...

  5. WFP(三)——编译、部署驱动文件*.sys——微软msnmntr项目

    通过WFP,我们可以编译得到sys驱动文件.此时需要我们把sys驱动文件部署到目标主机上,本文介绍部署的方式方法. 术语 host computer: 宿主主机,开发.编译驱动的主机 target/t ...

  6. Windows 11操作系统 ndis.sys 驱动无限蓝屏问题修复

    目前本人从 Windows 10 企业版升级到 Windows 11 企业版操作系统,遭遇到一个 ndis.sys 驱动无限制蓝屏的问题. 表现为 n1.待机一段时间后蓝屏 2.进入操作系统正常上面会 ...

  7. python打包和添加数据文件_Python打包时添加非代码文件的坑

    Title: Python打包时添加非代码文件的坑 Tags: python, 小结 对于 Python 的打包, 通常有两种, 一种是对源文件打包, 一种是安装包, 既在上传 pypi 的时候一般会 ...

  8. python能封装成exe文件_python文件封装成*.exe文件(单文件和多文件)

    环境:win10 64位  python3.7 单*.py文件打包 Python GUI:程序打包为exe 一.安装Pyinstaller,命令pip install Pyinstaller,(大写的 ...

  9. 利用MAVEN打包时,如何包含更多的资源文件

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

最新文章

  1. Maven项目下HttpServletRequest 或 HttpServletResponse需引用的依赖包
  2. 关于STM32中CAN1_RX0_IRQn和CAN1_RX1_IRQn的使用
  3. 菏泽合村并居促土地流转-农业大健康·万祥军:集约谋定高效
  4. 从零点五开始用Unity做半个2D战棋小游戏(七)
  5. 安卓案例:利用单选按钮切换碎片
  6. 阿里云盘内测_阿里云盘内测邀请码发放!30MB/s的下载速度
  7. JS魔法堂:LINK元素深入详解
  8. linux音频alsa-uda134x驱动分析之一(over-view)
  9. 双向循环链表实现—通讯录(学生管理系统,自行车管理系统,影院管理系统)—C语言课设(万能模板)—数据结构—用文件存储数据
  10. js 判断2月份多少天
  11. Matlab中图形对象属性gcf使用
  12. php需要帮助搞域名吗,域名转向系统的实现_php
  13. python实现猜测随机数
  14. Bloodsucker ZOJ - 3551
  15. 跟键盘在一起时间比女朋友还长? 程序员如何选好一块专属键盘?
  16. 地表最强的GPT-3,是在推理,还是胡言乱语?
  17. 如何解决VS下载速度慢
  18. 使用v-charts报错
  19. SQL入门-连结(JOIN)
  20. 【正点原子FPGA连载】第三十一章RTC实时时钟数码管显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

热门文章

  1. Windows远程连接linux服务器出现闪退
  2. OpenCV Mat 图像处理基本操作
  3. [动画片] 2013美国动画片《疯狂原始人》高清1080P种子下载
  4. PHP 代码审计基础
  5. spring mvc 404页面制作
  6. where 1=1永真与永假
  7. 什么手机用android系统,什么手机用android1。0 系统
  8. 使用百度地图Api,如何正确关闭默认地图POI事件?
  9. 一首火遍美国的小诗《纽约比加州时间早三个小时》
  10. Python3 多线程threading处理xlsx/csv数据