Я пытаюсь разработать инструмент C#, который может печатать через сетевой принтер. Это довольно просто: я хочу получить статус и некоторую другую информацию, доступную в классе PrintQueue (т. е. ShareName). Теперь у меня есть инструмент, который устанавливает в качестве принтера по умолчанию принтер, имя которого начинается с нескольких слов, а затем получает необходимую мне информацию от этого принтера с помощью класса PrintQueue, который после операции печати я сбрасываю в качестве принтера по умолчанию принтер, который был раньше было установлено по умолчанию. Я знаю, что это очень опасно, потому что имя принтера может измениться, а также потому, что, если мой инструмент выйдет из строя до завершения операции, я не смогу сбросить принтер по умолчанию, как раньше.
Кто-то знает, как это сделать. получить некоторую информацию, например ShareName, просто зная IP-адрес (или другую более надежную информацию, например номер оборудования) принтера?
Это мой конструктор
public PrinterUtilities()
{
server = new LocalPrintServer();
actualDefaultPrinter = server.DefaultPrintQueue.FullName;
}
Вот как я открываю соединение с принтером
private void OpenConnection()
{
foreach (string p in PrinterSettings.InstalledPrinters)
{
if (p.StartsWith("MyPrinter"))
{
Printer.SetDefaultPrinter(p);
}
}
server.Refresh();
PrintQueue queue = server.DefaultPrintQueue;
this.printerName = queue.ShareName;
}
}
И вот как я закрываю соединение
private void CloseConnection()
{
Printer.SetDefaultPrinter(actualDefaultPrinter);
server.Refresh();
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... rk-printer
Получить статус сетевого принтера, который не является сетевым принтером по умолчанию ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
От физического сетевого устройства до логического сетевого устройства [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-