在 Windows x64 和 NSIS 中使用 .INF 安装打印机

Posted

技术标签:

【中文标题】在 Windows x64 和 NSIS 中使用 .INF 安装打印机【英文标题】:Installing Printers with .INF in Windows x64 and NSIS 【发布时间】:2014-12-01 18:43:08 【问题描述】:

我创建了一个安装程序,其中包含两台带有 CUPS 的打印机网络。

在 Windows x86(32 位)中,打印机安装没有问题,有驱动程序,一切正常。

但问题是当我在 x64 中运行 .exe 时,我可以检测到 Arquitecture,我将 x64.nsh 放在顶部,但不能执行命令。

消息是“驱动程序无效”

我检查了驱动,是 x64 驱动...

我使用 ExecWait: rundll32 printui.dll PrintUIEntry ... 与对应名称 .inf...

谁能帮我解决使用 Nsis 安装程序安装 x64 打印机的问题?

谢谢! ;)

【问题讨论】:

【参考方案1】:

您是否在 x64 上尝试过 ExecWait '"$WinDir\SysNative\RunDll32.exe" printui.dll PrintUIEntry ...'? (不适用于 32 位系统,因此您需要检查 x64.nsh 以查看您想要的 RunDll32 路径,在 32 位上您只需要 "$SysDir\RunDll32.exe"

【讨论】:

你好安德斯。感谢你的回复。该程序可以毫无问题地检测架构(x86 / x64)。在x86没有问题,用对应的驱动安装打印机(.INF)没有问题,但是如果Windows是x64,一切都和x86一样,只是出现“驱动不兼容”,而不是在x64安装打印机.明天我试试你的解决方案,但是现在,该行是:x86 -> ExecWait: rundll32 printui.dll PrintUIEntry '"/m ""Name Printer" /f "File.INF" /r "URL Of Printer"' 在 x86 中,线条工作正常,但在 x64 中,给我“驱动程序不兼容”。谢谢大家! 我需要用相应的驱动程序安装打印机...在 x86 中工作正常,但在 x64 中...找不到正确的安装形式:( 朋友你好!在 Windows XP、Windows Vista 和 Windows 7 中,x86 和 x64 都可以,但在 Windows 8 中出现“驱动程序不兼容”消息。谢谢。 您可以尝试使用我发布的代码吗?我不知道它是否会工作,但我怀疑该进程需要 64 位才能安装 64 位驱动程序... 你好朋友,行是这样的: ExecWait 'rundll32 printui.dll,PrintUIEntry /b "Ricoh MP 7500" /x /n "Ricoh MP 7500" /h "x86" /if /f " OEMSETUP.INF" /r "localhost:631/printers/Ricoh_MP_7500" /m "RICOH Aficio MP 7500 PCL 6"'。此行在 Windows XP、Windows Vista 和 Windows 7 以及 x86 和 x64 中运行良好。但是在 Windows 8 中执行此行时,会出现消息“驱动程序不正确”。谢谢大家! ;)

以上是关于在 Windows x64 和 NSIS 中使用 .INF 安装打印机的主要内容,如果未能解决你的问题,请参考以下文章

使用NSIS制作Windows安装程序快速入门

如何使用NSIS脚本将应用程序安装为Windows服务

NSIS安装包开发笔记:NSIS介绍使用NSIS默认向导脚本制作Windows安装包

windows xp系统下提示Nsis Error错误的解决方法

在 VS2012 和 windows 8 x64 中使用 MFC CDatabase 连接访问数据库

如何从 NSIS 安装程序“刷新”Windows 7 开始菜单?