API连接打印机

    技术2022-05-11  126

    据我所知,

    Type PRINTER_DEFAULTS

           pDatatype As String

           pDevMode As Long

           DesiredAccess As Long

    End Type

    第二条应该是     pDevMode As DEVMODE

    Type DEVMODE

        dmDeviceName As String * CCHDEVICENAME

        dmSpecVersion As Integer

        dmDriverVersion As Integer

        dmSize As Integer

        dmDriverExtra As Integer

        dmFields As Long

        dmOrientation As Integer

        dmPaperSize As Integer

        dmPaperLength As Integer

        dmPaperWidth As Integer

        dmScale As Integer

        dmCopies As Integer

        dmDefaultSource As Integer

        dmPrintQuality As Integer

        dmColor As Integer

        dmDuplex As Integer

        dmYResolution As Integer

        dmTTOption As Integer

        dmCollate As Integer

        dmFormName As String * CCHFORMNAME

        dmUnusedPadding As Integer

        dmBitsPerPel As Long

        dmPelsWidth As Long

        dmPelsHeight As Long

        dmDisplayFlags As Long

        dmDisplayFrequency As Long

    End Type

     

     

    合起来,我试验的结果就是

     

    Const CCHDEVICENAME = 32

    Const CCHFORMNAME = 32

     

    Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long

     

    Type DEVMODE

        dmDeviceName As String * CCHDEVICENAME

        dmSpecVersion As Integer

        dmDriverVersion As Integer

        dmSize As Integer

        dmDriverExtra As Integer

        dmFields As Long

        dmOrientation As Integer

        dmPaperSize As Integer

        dmPaperLength As Integer

        dmPaperWidth As Integer

        dmScale As Integer

        dmCopies As Integer

        dmDefaultSource As Integer

        dmPrintQuality As Integer

        dmColor As Integer

        dmDuplex As Integer

        dmYResolution As Integer

        dmTTOption As Integer

        dmCollate As Integer

        dmFormName As String * CCHFORMNAME

        dmUnusedPadding As Integer

        dmBitsPerPel As Long

        dmPelsWidth As Long

        dmPelsHeight As Long

        dmDisplayFlags As Long

        dmDisplayFrequency As Long

    End Type

     

    Type PRINTER_DEFAULTS

        pDatatype As String

        pDevMode As DEVMODE

        DesiredAccess As Long

    End Type

     

    Private Sub Form_Load()

     

        Dim pDefault As PRINTER_DEFAULTS

        Dim pName As String

        Dim pHPrint As Long

        Dim value As Long

       

        pName = "//QDF/HPLJ4050"

        value = OpenPrinter(pName, pHPrint, pDefault)

       

        MsgBox CStr(pHPrint) & " " & value

       

       

       

    End Sub


    最新回复(0)