【问题标题】:Inno setup: install drivers with rundll32 or dpinst?Inno 设置:使用 rundll32 或 dpinst 安装驱动程序?
【发布时间】:2012-02-10 11:33:28
【问题描述】:

我正在尝试使用 Inno 设置安装驱动程序,看起来有(至少)两种方法可以做到这一点:将 DPinst.Exe 添加到 .inf 文件或运行 rundll。

我知道 DPinst 有两个不同版本的 x86 和 x64,是否有不同的版本取决于操作系统(我需要支持 XP、Vista 和 7)

这些方法需要管理员权限吗?

推荐哪种方法?

【问题讨论】:

    标签: installation inno-setup drivers


    【解决方案1】:

    您对所有版本的操作系统使用相同的 DPInst 版本;唯一的区别是 32 位与 64 位。 WDK 提供 32 位和 64 位版本。

    就个人而言,这是我所做的(在 InnoSetup 上):

    [Files]
    ...
    Source: ...\dpinst32.exe; DestDir: {#DpInstPath}; DestName: dpinst.exe; Check: not IsWin64; Flags: ignoreversion
    Source: ...\dpinst64.exe; DestDir: {#DpInstPath}; DestName: dpinst.exe; Check: IsWin64; Flags: ignoreversion
    

    使用run32dll setupapi.dll,InstallHinfSection ... 已过时,一般不推荐,除非您有一些非常特殊的需求。

    【讨论】:

    • 你实际上是如何运行它的?如果我调用 dpinst.exe,我会收到 ShellExec 错误。您能否发布 .iss 文件的所有相关部分?
    • 那太费劲了。确保您的路径是正确的,等等。InnoSetup 日志记录可以提供帮助,如果最糟糕的情况变得更糟,请尝试使用 Sysinternals Process Monitor 查看它的作用。但实际上,我怀疑你在某个地方有错字。
    • 从 Windows 10 版本 1607 (Redstone 1) 开始,驱动程序安装框架 (DIFx) 工具不再包含在 WDK 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多