我们在迁移到2017年NAV(从5.0)时遇到打印机选择问题。列出打印机(NavTools)的原始方法仅提供打印服务器名称,我们尝试的其他方法(PrinterSettings.InstalledPrinters()
,ManagementObjectSearcher('select * from win32_printer')
)仅提供打印机名称列表,无法获取客户端名称。由于用户可以通过本地客户端或远程桌面进行连接(并且因为某些用户可以访问所有这样连接的打印机),因此不仅仅需要使用名称。有没有其他方法可以让打印机的客户端名称保持不变?
修改
我查看了这个NavTools代码,它从注册表中获取数据。显然,注册表结构发生了变化,我还没有找到类似的东西。
PrinterDriverData = HKLM.OpenSubKey("SYSTEM\CurrentControlSet\Control\Print\Printers\" + PrinterDeviceList.GetValue(pIndex) + "\PrinterDriverData")
Return PrinterDriverData.GetValue("ClientName")