怎么样判断是否已连接打印机(是否连接成功!)

解决方案 »

  1.   

    '判断是否有打印机Const PRINTER_ENUM_CONNECTIONS = &H4
    Const PRINTER_ENUM_LOCAL = &H2
    Public Declare Function EnumPrinters Lib "winspool.drv" Alias _
       "EnumPrintersA" (ByVal Flags As Long, ByVal name As String, _
       ByVal Level As Long, pPrinterEnum As Long, ByVal cdBuf As Long, _
       pcbNeeded As Long, pcReturned As Long) As LongPublic Function IsPrinterValid() As Boolean
    Dim Success As Boolean, cbRequired As Long, cbBuffer As Long
    Dim Buffer() As Long, nEntries As Long
       cbBuffer = 3072
       ReDim Buffer((cbBuffer \ 4) - 1) As Long
       Success = EnumPrinters(PRINTER_ENUM_CONNECTIONS Or _
                             PRINTER_ENUM_LOCAL, _
                             vbNullString, _
                             1, _
                             Buffer(0), _
                             cbBuffer, _
                             cbRequired, _
                             nEntries)
       If nEntries <> 0 Then
            IsPrinterValid = True
       Else
            IsPrinterValid = False
       End If
    End Function
      

  2.   

    可以用它的printer对象的属性来获得机器安装了多少台打印机。
      

  3.   

    有没有人知道,如果我的打印机(包括网络和本地两种情况)power off 了,怎么侦测?msn:[email protected],在线等待
      

  4.   

    Private Function CheckPrint() As Boolean
    '函数名称:CheckPrint
    '功    能:检测是否安装了打印机
        Dim X As Printer
        For Each X In Printers
           If X.Orientation = vbPRORPortrait Then
                CheckPrint = True
            Else
                CheckPrint = False
           End If
        Next
    End Function
      

  5.   

    还加一条语句:Private Function CheckPrint() As Boolean
    '函数名称:CheckPrint
    '功    能:检测是否安装了打印机
        Dim X As Printer
        For Each X In Printers
           If X.Orientation = vbPRORPortrait Then
                CheckPrint = True
                exit sub
            Else
                CheckPrint = False
           End If
        Next
    End Function