我写了一个安装程序,设置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}
答案 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支持部门寻求正式答复......