安装打印机但不要使它成为默认打印机(windows,nsis)

时间:2015-06-02 09:35:50

标签: windows nsis

我写了一个安装程序,设置NUL:端口并安装打印机驱动程序,然后安装打印机。但是,当我在管理员帐户下运行时,打印机始终设置为默认打印机。

如何阻止这种情况发生?

以下是设置打印机的代码:

ReadRegStr $3 HKLM "SYSTEM\CurrentControlSet\Control\Print\Printers\$DisplayName" "Name"

${If} ${Errors}
      ExecWait '$SYSDIR\rundll32.exe printui.dll,PrintUIEntry /if /r "$PrinterPort" /b "$DisplayName" /z /Gw /f "$DriverPath" /m "$DriverModel"'
${EndIf}

1 个答案:

答案 0 :(得分:1)

我对此没有一个好的答案。 This blog post文档/y作为设置默认打印机的开关,但我没有看到开关以防止更改默认打印机。您可以尝试/-y/y-但我真的怀疑这些是否受到支持。

您可以阅读Device下的HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows值来获取当前默认值,然后在完成后使用RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "$SavedPrinterName"恢复它,但这只是一个黑客攻击而且只会影响当前用户。

如果您是硬件制造商,您可以向Microsoft支持部门寻求正式答复......