类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我做了一个打印程序,在中文下一切正常,现在需要在外文环境下使用,但发现在别的语言环境下(中文windowXP下 英 日的语言环境)使用不了。
测试后发现是因为无法对设定的打印机进行控制。
如 Printer.Orientation = 2
Printer.EndDoc 等语句都不起作用
我使用下列代码测试,结果nRet 的值在中文下为1,而在其他环境下都为0。
我估计是vb的Printer对象的使用问题,因为outlook,excel 在其他环境下都能正常打印
我已经花了2天时间了还不行,向高手求助!分不是问题,可以再加
Option Explicit
Private Type PRINTER_DEFAULTS
pDatatype As Long
pDevmode As Long
DesiredAccess As Long
End Type
Private Const PRINTER_ACCESS_ADMINISTER = &H4
Private Const PRINTER_ACCESS_USE = &H8
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function OpenPrinter Lib "winspool.drv" Alias _
"OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, _
pDefault As PRINTER_DEFAULTS) As Long
Private Sub Command1_Click()
Dim hPrinter As Long, nRet As Long
Dim pd As PRINTER_DEFAULTS
pd.DesiredAccess = PRINTER_ALL_ACCESS
nRet = OpenPrinter(Printer.DeviceName, hPrinter, pd)
MsgBox nRet
ClosePrinter hPrinter
End Sub
网友回答:
VB的SP5装过了吗?
关注,帮你顶!
请参考下贴,或许对楼主有用:
http://community.csdn.net/Expert/topic/3181/3181353.xml?temp=.0662958
打个SP5,重新打包试试看呢。