IMPRESSORA MATRICIAL!

USUARIO.EXCLUIDOS 12/04/2004 17:44:59
#20137
Eu mando comando direto para LPT1 assim:

Open LPT1 For Output As #2
Print #2, texto
Close #2

Mas se a impressora estiver desligada, ai meu amigo o progrma trava!!

como faço para saber se esta desligada e outras coisas mais??

Valew desde Já
USUARIO.EXCLUIDOS 12/04/2004 18:03:29
#20145
Resposta escolhida
Verifique o status da impressora com o uso do objeto Printer, antes de abrir a porta de impressão com o Open.

Ex::

Private Sub Command1_Click()
MsgBox PrinterActive("Epson LX-300")
End Sub

Public Function PrinterActive(Nome As String) As Boolean
On Error GoTo PAErr:
Dim lRet As Boolean
lRet = True
Dim oP As Printer
For Each oP In Printers
Debug.Print oP.DeviceName
If LCase(oP.DeviceName) = LCase(Nome) Then
oP.NewPage
Exit For
End If
Next
GoTo PAExit:
PAErr:
lRet = False
PAExit:
PrinterActive = lRet
lRet = MEPTY
Set oP = Nothing
End Function

USUARIO.EXCLUIDOS 12/04/2004 18:29:17
#20153
Private Sub Command1_Click()
MsgBox PrinterActive("Epson LX-300")
End Sub

ou seja:

PrinterActive(nome do driver da impressora)

Há uma rotina por API para a verificação do status da impressora, aliás bem compridinha, mas eu não estou encontrando. Se a impressora estiver conectada pela porta serial, também dá para verificar pelo MSComm, estou errado? Agora, pela LPT1:, acho que só assim como eu coloquei ou por essa rotina chamando a API...
Tópico encerrado , respostas não são mais permitidas