Type PRINTER_DEFAULTS
pDatatype As String
pDevMode As Long
DesiredAccess As Long
End Type
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (Byval pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
Dim printer As Long
Dim printerdefault As PRINTER_DEFAULTS
ttt = OpenPrinter("Acrobat PDFWriter",printer, printerdefault)
我用以上代买来实现连接打印机,为何返回值是0呢,Acrobat PDFWriter这个打印机确实存在的啊???
pDatatype As String
pDevMode As Long
DesiredAccess As Long
End Type
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (Byval pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
Dim printer As Long
Dim printerdefault As PRINTER_DEFAULTS
ttt = OpenPrinter("Acrobat PDFWriter",printer, printerdefault)
我用以上代买来实现连接打印机,为何返回值是0呢,Acrobat PDFWriter这个打印机确实存在的啊???
解决方案 »
- 穷人跪求解决方案:用VFP 写了个网页自动添表功能 遇到联动下拉菜单问题
- 变量定义的问题
- 如何把查询后的结果集复制到excel?
- 请问VB6的串口通信控件的inputlen属性指的是什么,怎么用? 还有vbcrlf代表什么?
- 请各位高手指教!!关于运行时保存图片的问题
- 如何把textbox中的内容格式化
- 各位大虾,救命啊!
- 读取shape文件出现问题,在线等~~~
- vb通过摄像头或CCD设备采集图像,如何开发?
- 不幸的事情,www.21code.com要关门了!!!!!
- 有人用过WIN32 API 中的QueryPerformanceFrequency()和QueryPerformancCounter这两个函数吗
- 选择性关闭窗体问题?
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" _
(ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As LongPublic Declare Function StartDocPrinter Lib "winspool.drv" Alias _
"StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _
pDocInfo As DOCINFO) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, _
pcWritten As Long) As Long
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 = 32Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As LongType 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 TypeType PRINTER_DEFAULTS
pDatatype As String
pDevMode As DEVMODE
DesiredAccess As Long
End TypePrivate 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在我的电脑上运行通过,你改一个pName试试