繁体   English   中英

在Windows Vista或更高版本上从nsis安装inf(驱动程序)

[英]install inf (driver) from nsis on windows vista or greater

我尝试使用cmd和由脚本制作的nsis安装程序在Windows 7 x64环境中安装驱动程序

从cmd我做例如:

 InfDefaultInstall C:\kit\driver\win7-64\my_driver.inf

从nsis我做(这是脚本中的行):

 Exec 'InfDefaultInstall $INSTDIR\driver\win7-64\my_driver.inf'

inf文件应将Windows \\ system32 \\ drivers文件夹中的.sys文件复制并在注册表中写入一些内容

问题是,它发生在cmd中,并且如果使用nsis安装程序也不会发生(我是说它看起来像是在做,但是.sys文件没有放在应该去的位置)

另外,在卸载时我从nsis脚本执行:

Delete '$WINDIR\system32\drivers\my_driver.sys'

此命令不会删除sys文件(该文件应移至应有的位置,因为安装后我运行了cmd line命令)

==

使用管理员帐户运行的所有测试(禁用了UAC)也已尝试在安装程序上以admin身份右键单击运行,但不会复制它

==

我在Windows XP上尝试过

Exec 'rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 $INSTDIR\driver\win7-64\my_driver.inf'

并完美运行(来自cmd和nsis脚本)

也尝试在win7上使用此命令,但我却无法正常工作。 还可以在vista x86上进行尝试,因此我不认为这是体系结构问题,而是类似权限或与uac有关的问题(尽管未启用uac)

我怀疑这是否对您Exec 'InfDefaultInstall "$INSTDIR\\driver\\win7-64\\my_driver.inf"' ,但是您应该引用路径: Exec 'InfDefaultInstall "$INSTDIR\\driver\\win7-64\\my_driver.inf"'

您应该包括x64.nsh文件并调用DisableX64FSRedirection宏(您可能还想使用$ sysdir而不是$ WINDIR \\ system32)

就InfDefaultInstall命令而言,也许当前目录/工作目录很重要,您可以使用SetOutPath在nsis中对其进行设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM