JAVA извлекает все принтеры из всех учетных записей пользователей Windows

#java #windows #api #user-accounts #printers

#java #Windows #API #учетные записи пользователей #принтеры

Вопрос:

Есть ли какой-либо способ получить все принтеры, установленные различными учетными записями пользователей Windows на одном компьютере.

Метод lookupPrintServices() javax.print.Класс PrintServiceLookup отображает все принтеры, которые можно увидеть на панели управления в Windows для вошедшего в систему пользователя.

Комментарии:

1. Почему вы хотите это сделать?

2. пользователь выбирает принтер с сервера и отправляет документ на этот принтер для печати. На сервере есть две учетные записи пользователей (пользователь A и пользователь B). Теперь пользователь A может видеть только свои принтеры, а B может видеть только свои принтеры. Есть ли какой-либо способ в java, который извлекает принтеры, установленные обоими пользователями A и B

3. @SadurdinaGAP Теперь вы внезапно говорите о принтерах на сервере , но ваш вопрос касается зарегистрированных / настроенных принтеров на вашем локальном компьютере.

4. Это больше похоже на проблему установки 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()); 
    }
}
  

Комментарии:

1. Согласно моему выполнению приведенного выше кода, он возвращает имена принтеров из панели управления, а не из другой учетной записи пользователя Windows, которая установила разные принтеры.