Страница: 1 |
Страница: 1 |
Вопрос: Статус принтера
Добавлено: 27.06.05 16:19
Автор вопроса: Shark | Web-сайт:
Как узнать статус принтера по умолчанию
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #1
Добавлено: 27.06.05 16:25
Что значит статус?
Принтер по умолчанию?
Включен/выключен?
Печатает/ошибка?
Номер ответа: 2
Автор ответа:
Shark
ICQ: 284036855
Вопросов: 35
Ответов: 155
Web-сайт:
Профиль | | #2
Добавлено: 27.06.05 16:34
Включен или нет?
Можно напечатать или нет?
Номер ответа: 3
Автор ответа:
ArtBase
ICQ: 55593017
Вопросов: 23
Ответов: 76
Профиль | | #3
Добавлено: 27.06.05 16:36
Какое совпадение. Shark, ты не против? Я тут припишусь?
У меня такой вопрос: Как узнать подключен (установлен) ли принтер?
Номер ответа: 4
Автор ответа:
Shark
ICQ: 284036855
Вопросов: 35
Ответов: 155
Web-сайт:
Профиль | | #4
Добавлено: 27.06.05 16:38
Я не против, а то если принтер не доступен программа завершается с ошибкой
Номер ответа: 5
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #5
Добавлено: 27.06.05 16:48
Object) As Boolean
On Error GoTo errHandler:
Dim l As Long
Dim lCount As Long
ListControl.Clear
lCount = Printers.Count
If lCount = 0 Then
' если не будет ни одного..
ListControl.AddItem "No Printer Installed)"
Else
'Остальные засунуть в листконтрол
For l = 0 To lCount - 1
ListControl.AddItem Printers(l).DeviceName
Next
End If
PopulateListControlWithPrinters = True
Exit Function
errHandler:
PopulateListControlWithPrinters = False
Exit Function
End Function
'В принципе по-моему можно сделать через OpenPrinter (см. ниже)
' *****************************************************************
' This function checks if a printer is up-and-running
' Requires WMI
' *****************************************************************
' Check out http://www.activxperts.com for more samples and components
' *****************************************************************
Const PrinterIdle = 3
Const PrinterPrinting = 4
Const PrinterWarmingUp = 5
Function IsPrinterUp( strPrintServer, strPrinter )
Dim strobject, PrinterSet, Printer
IsPrinterUp = False
strObject = "winmgmts://" & strPrintServer
Set PrinterSet = GetObject( strObject ).InstancesOf( "win32_Printer" )
If( PrinterSet.Count = 0 ) Then
Exit Function
End If
For Each Printer in PrinterSet
WScript.Echo Printer.Name & " ==> " & Printer.PrinterStatus
If UCase( Printer.name ) = UCase( strPrinter   Then
If Printer.PrinterStatus = PrinterIdle Or Printer.PrinterStatus = PrinterPrinting Or Printer.PrinterStatus = PrinterWarmingUp Then
IsPrinterUp = True
Exit Function
End If
End If
Next
End Function
' *****************************************************************
' Main
' *****************************************************************
Dim strPrintServer, strPrinterName
Do
strPrinterName = inputbox( "Please enter the name of the printer", "Input" )
Loop until strPrinterName <> ""
Do
strPrintServer = inputbox( "Please enter the name of the printserver", "Input" )
Loop until strPrintServer <> ""
If( IsPrinterUp( strPrintServer, strPrinterName ) = True ) Then
WScript.Echo "Printer " & strPrinterName & " is OK"
Else
WScript.Echo "Printer " & strPrinterName & " is NOT OK"
End If
'Я думаю можно проверить очередь заданий просто..
http://freevbcode.com/source/PrintJobs.zip