如何制作驱动程序安装包

使用NSIS制作驱动安装包 win10环境安装驱动的发现: 1.会在C:\Windows\INF目录下的setupapi.dev.log文件中记录信息,包括安装命令,安装结果。 2.可以使用pnputil安装驱动。由于安装后的inf文件会放到C:\Windows\INF目录下以oem#.inf命名,所以安装时需要记录对应的inf文件名。这里采用了如下方法,该方法也是参考stackoverflow上一个网友的回复: (1)记录下安装驱动前已有的驱动列表:pnputil /enum-drivers > driverli.. 阅读详情

制作驱动程序的安装包(需要inf,sys等)其实有许多种方法,以下以NSIS作为制作工具列举几种,并说明利弊:

1.使用NSIS的InstDrv控件:

下载地址:http://nsis.sourceforge.net/InstDrv_plug-in

下载来的安装包里有例子,本人成功用此方法做出了一个安装包,可惜有如下缺点。

缺点:不能做64位系统的驱动安装包

 

2.用PnPUtil:

没试过,貌似也有些缺点。

 

3.在section或函数中添加一行:

ExecWait '$SYSDIR\RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 $INSTDIR\<myinf>.inf'

其中的“DefaultInstall”为inf中写出的默认节。

缺点:相当一部分的inf中是没写DefaultInstall的。

 

4.在section或函数中添加:
${If} ${RunningX64}
       ExecWait '"$INSTDIR\drivers\dpinst64.exe" /c /q /sa /sw /PATH "$INSTDIR\drivers"'
${Else}
       ExecWait '"$INSTDIR\drivers\dpinst32.exe" /c /q /sa /sw /PATH "$INSTDIR\drivers"'
${EndIf}

dpinst.exe在微软的WDK中有,在WinDDK\7600.16385.1\redist\DIFx\dpinst。网上应该也下得到吧。

缺点:可惜只能在安装设备管理器中显示有未知硬件的驱动,而不能安装虚拟设备驱动。而且貌似不能安装无数字签名的驱动。

 

5.在section或函数中添加:
 ${If} ${RunningX64}
       ExecWait '"$INSTDIR\devcon\devcon64.exe" install "$INSTDIR\xxx.inf" xxxID'
   ${Else}
       ExecWait '"$INSTDIR\devcon\devcon32.exe" install "$INSTDIR\xxx.inf" xxxID‘
   ${EndIf}

devcon.exe也是在微软的WDK中有,在WinDDK\7600.16385.1\tools\devcon。上网也下得到
输入inf路径和硬件ID就行了。硬件ID不知道?先手动安装一次,在设备管理器中就能查到。

关于如何制作驱动程序安装包 - Au - Au的博客

本人最后就是用这种方法的。其他几种或多或少都有缺点,唯独这种方便可行。

要卸载的话,在Uninstall节中加上:

Section Uninstall
   ${If} ${RunningX64}
       ExecWait '"$INSTDIR\devcon\devcon64.exe" remove xxxID'
   ${Else}
       ExecWait '"$INSTDIR\devcon\devcon32.exe" remove xxxID'
   ${EndIf}

InstallShield 制作INF驱动安装程序 使用InstallShield制作简单的INF驱动安装包 阅读详情

相关推荐

InstallShield2008驱动安装包制作方法

InstallShield2008驱动安装包制作方法,简单易操作,容易上手,适于初学者使用。

NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版

nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序。nsis它功能强,源码是直接使用C语言编写而成,并且可以直接到nsis官网下载所有nsis版本,并且提供了详细的帮助文档,方便用户制作时使用.安装页面可以使用Page自定义界面、卸载页面可以...

weixin_30651273的博客 1489

用NSIS制作安装程序安装驱动

在脚本的-Post部分增加安装驱动的命令,如下红色部分(注:在NSIS脚本中在双引号中输入引号的方法是$\",和C语言不同),installdriver后的第一个参数是inf文件的全路径,第二个参数是DeviceID(可以在设备管理器中设备的属性页中Details页面中查到类似于 PCI\VEN_104C&DEV_9065&SUBSYS_00000000&REV_01\5&C7D5D34&0&2000F0这样的字符串,PCI\VEN_104C&DEV_9065这部分就是设备ID),installdriver.exe 可以从驱动程序DDK附带的代码(C:\NTDDK\src\general\setup\install)编译获得

使用NSIS打包程序安装包

使用NSIS打包程序安装包

陆之沂的博客 5542

用NSIS制作安装程序安装驱动.rar

最近发布的项目需要制作的安装程序能够安装硬件驱动,搞了一天才搞好,和大家分享

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2442

NSIS打包软件报(安装失败)

1、报错的界面提示 运行: RunDll32 setupapi,InstallHinfSection DefaultInstall 132 C:\Windows\system32\drivers\XXX.inf 2、报错的进程rundll32.exe 3,原因,驱动错误导致(我这个操作系统是win 764专业版简易版本,更新完后就没有问题了SP1,猜测是那个更新包更新了RunDll32.exe...

Ma_Hong_Kai的博客 1202

步进电机选型避雷手册:为什么你的42HS电机总丢步?从相数、电流到散热全面拆解

本文深入剖析了42HS步进电机在高速或重载下易出现丢步问题的根本原因。文章指出,选型时不应仅关注静态保持转矩,而需重点分析动态矩频曲线、合理匹配驱动器电流与细分数、进行准确的机械传动惯量计算,并有效管理系统共振与散热。通过全面拆解这些关键因素,为工程师提供了实用的选型避雷指南与系统优化方案。

weixin_29275257的博客 97

使用installShield制作一个含调用设置、服务注册及驱动程序的安装包

<br /><br /> <br />新建一个工程,类型为installScript Project。填入工程名称及工程路径<br />进入project Assistant点击下一步 <br />在ApplicationInformation中填入公司名称、应用名称、版本和公司网址<br />在Application Files中的Application Target Folder对应的右边框中加入程序文件,在Support Folder中加入对应的驱动程序文件.inf和.sys<br />在Applic

萌大叔的专栏 2664

yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备

前言 前段时间分析了yolov3的源码,这次想带着小伙伴一起把yolov5完全掌握。博主还是保持着一贯的风格,依旧采用debug级别的源码剖析。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。只要小伙伴可以花时间把这个系列读完,就会对yolov5的理解有所提升。 去年参加了kaggle的小麦检测比赛,yolov5在比赛的中段开始呈现霸榜趋势,超越了efficientdet。虽然最后yolov5因为权限等某些问题被kaggle官方禁用了,但是仍然体现出了其强大的能力。值

人唯优的博客 4万+

还在用iReport 5.6.0?手把手教你用JasperSoft Studio 6.8.0设计报表(附JDK 11+兼容方案)

本文详细介绍了从iReport 5.6.0迁移到JasperSoft Studio 6.8.0的全过程,包括JDK 11+环境配置、项目迁移实战、高级特性应用及常见问题解决方案。帮助开发者高效完成报表生成工具的升级,提升开发体验和报表性能。

weixin_30687051的博客 407

Parsec-VDD项目:如何从NSIS安装包提取驱动程序文件

在Parsec-VDD项目的实际部署中,您可能会遇到这样的场景:需要在多台设备上批量部署虚拟显示驱动,或者需要在受限制的网络环境中离线安装。此时,直接从NSIS(Nullsoft Scriptable Install System)安装包中提取驱动程序文件就显得尤为重要。 本文将详细介绍从Parsec-VDD的NSIS安装包中提取驱动程序文件的完整流程,包括工具选择、提取步骤、文件结构分析以及手...

gitblog_07149的博客 573

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4707

linux 驱动安装包制作,急,linux为什么生成不了.o驱动程序文件

该楼层疑似违规已被系统折叠隐藏此楼查看此楼在文件和文件都正确的情况下,为什么键入命令之后却生成不了文件,还出现下面的东西/usr/local/arm/2.95.3/bin/arm-linux-gcc-DMODULE-I/home/msy/kernel-h2410eb/include-D__KERNEL__-Wall-Wstrict-prototypes-Wno-trigraphs-...

weixin_31227315的博客 156

关于海康MVS软件显示速率低与1GB、相机丢包的设置优化

工控机主要应用与视觉检测!相机网线及工控机网口都是千兆的!设置完巨帧数和速度与双工(选择为全双工),显示速度低与1GB,不能够正常工作。C.LA-Properdes-Advanced-将RecerveBuffers更改为2048。E.LAN-属性-电源管理-取消选中允许计算机关闭此设备以保存电源。这种情况均为MVS设置不熟悉,可参照如下设置优化相应端口相机配置。D.局域网-属性-高级-将传输缓冲区更改为20484。B.LAN-属性-高级-将中断记录部分更改为执行。A.关闭采集控制帧速率控制。

米可的博客! 8827

手把手教你学simulink(95.1)--PID控制实例:基于Simulink的PID控制温度控制系统建模与仿真

温度控制是工业自动化、家用电器、医疗设备以及航空航天等领域中常见的控制问题。通过精确的温度控制,可以提高生产效率、降低能耗并确保产品质量。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于各种温度控制系统。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的温度控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 793

用NSIS制作驱动安装包

2、驱动是否已签名。如果未签名,管理员权限运行 bcdedit /set testsigning on。四、pnputil /add-driver *.inf /install报错。七、如果不需要卸载,就够用了。如果需要,加上下面的脚本。找到安装好的驱动的名字。五、大神的脚本,记得在目录下创建createDiff.cmd。最后还是参考的您的链接。开始正文,主要是我踩的坑。一、由于是安装驱动。1、记得这个目录不要是带空格的。2、安装HM NIS Edit。1、是否用管理员权限运行。3、按向导生成安装包。

睢常明的专栏 804

2026华为OD机试(Python)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Python实现。

MISAYAONE的博客 29万+

DKMS简介

我们都知道,如果要使用没有集成到内核之中的Linux驱动程序需要手动编译。当然,这并不是一件什么难事,即使是对于没有编程经验的Linux使用者,只要稍微有点hacker的意识,努力看看代码包里的Readme或者INSTALL文件,按部就班的执行几条命令还是很容易办到的。但这里还有一个问题,Linux模块和内核是有依赖关系的,如果遇到因为发行版更新造成的内核版本的变动,之前编译的模块是无法继续使用的

954

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

linux dkms,DKMS简介

我们都知道,如果要使用没有集成到内核之中的Linux驱动程序需要手动编译。当然,这并不是一件什么难事,即使是对于没有编程经验的Linux使用者,只要稍微有点hacker的意识,努力看看代码包里的Readme或者INSTALL文件,按部就班的执行几条命令还是很容易办到的。但这里还有一个问题,Linux模块和内核是有依赖关系的,如果遇到因为发行版更新造成的内核版本的变动,之前编译的模块是无法继续使用的...

weixin_42388631的博客 7015

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

DKMS:Dynamic Kernel Module Support

DKMS简介 DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块。 1.背景 对于没有内核编程经验的使用者来说,使用者可能经常困惑:为什么更新操作系统之后,原来用的好好的驱动程序突然就不能用了? Linux模块和内核是有依赖关系的,如果发行版的内核版本发生变动,之前老内核版本上编译的模块将无法继续使用。一般的解决方案是:打开源码,手动重新再编译(make)一遍。 这样重复的操作有些繁琐且是反生产力的,就是

lpven168的博客 1503

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何解决在XPE\WES上安装应用程序或者驱动程序出现操作系统版本问题

当我们在XPE或WES上安装应用程序或者驱动程序的时候,会遇到操作系统版本不一致,导致无法安装的情况。通常在安装的过程中会出现"该系统不是有效的32位XP系统"之类的提示,然后安装程序会退出。 这样的问题经常会发生在杀毒软件的安装上,例如bitdefender或者熊猫卫士等。因为杀毒软件对于系统的版本要求是非常严格的。 从提示信息上来看...

weixin_34248118的博客 432
上一篇: 挑战最强大脑——来自全球的14个编码社区
下一篇: 16位增强色RGB转换为24/32位真色彩
Enbiting
博客等级 码龄18年 19粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值