JAVA 从所有 Windows 用户帐户中检索所有打印机

Posted

技术标签:

【中文标题】JAVA 从所有 Windows 用户帐户中检索所有打印机【英文标题】:JAVA retrieve all printers from all windows user accounts 【发布时间】:2016-10-06 20:09:22 【问题描述】:

有什么方法可以检索同一台机器上不同 windows 用户帐户安装的所有打印机。

javax.print.PrintServiceLookup 类的lookupPrintServices() 方法显示登录用户可以在Windows 控制面板中看到的所有打印机。

【问题讨论】:

你为什么要这样做? 用户从服务器中选择一台打印机并将文档发送到该打印机进行打印。服务器有两个用户帐户(用户 A 和用户 B)。现在用户 A 只能看到他的打印机,而 B 只能看到他的打印机。 java中有什么方法可以检索用户A和B都安装的打印机 @SadurdinaGAP 您现在突然谈到服务器 上的打印机,但您的问题是关于您本地 机器上的注册/配置打印机。 这听起来更像是 Windows 设置问题。 【参考方案1】:

会有帮助的

import javax.print.PrintService;
import javax.print.PrintServiceLookup;


public class CheckInstalledPrinter 
    public static void main (String [] args)
    
        PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
        System.out.println("Total Services :: " + printServices.length);

        for (PrintService printer : printServices)
            System.out.println("Printer Name :: " + printer.getName()); 
    

【讨论】:

根据我对上述代码的执行,它从控制面板返回打印机名称,而不是从安装了不同打印机的其他 Windows 用户帐户返回。

以上是关于JAVA 从所有 Windows 用户帐户中检索所有打印机的主要内容,如果未能解决你的问题,请参考以下文章

从 Laravel 中的关系中检索关系

当我的用户使用 gae-simpleauth 登录时,如何从 Google 帐户中检索电子邮件地址并将其存储在我的应用程序的用户配置文件中?

用于从存储帐户 V2 检索存储帐户资源 ID、blob 资源 ID 的 Powershell 命令

从 Polkadot js 扩展中检索密码

无法从本地系统帐户检索的流程信息

使用Java从LDAP检索sidHistory