1 / 19
文档名称:

VB中打印机选择.doc

格式:doc   大小:26KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VB中打印机选择.doc

上传人:wz_198614 2017/11/1 文件大小:26 KB

下载得到文件列表

VB中打印机选择.doc

相关文档

文档介绍

文档介绍:VB中打印机选择
(1)
MONDIALOG控件叫CMDiag
用如下代码可以使你选择的打印机成为默认打印机"Printer"
OnErrorResumeNext
=True
=True

<>0ThenExitSub
(2)
VB里面,原本改变预设打印机的方法是:(假设安装有两种打印机(驱动程式))SetPrinter=Printers(0)'将预设打印机设定成第一种打印机
SetPrinter=Printers(1)'将预设打印机设定成第二种打印机
但实际上以上叙述有时候不会成功(原因不详),为了能够成功地改变预设打印机,以下是呼叫WindowsAPI的方法:(此一解决方案适用於Windows95,98)
:
ConstHWND_BROADCAST=&HFFFF&
ConstWM_WININICHANGE=&H1A
PrivateDeclareFunctionGetProfileStringLib"kernel32"Alias_

"GetProfileStringA"(ByVallpAppNameAsString,ByVallpKeyNameAs_String,ByVallpDefaultAsString,ByVallpReturnedStringAsString,_ByValnSizeAsLong)AsLong
PrivateDeclareFunctionWriteProfileStringLib"kernel32"Alias_
"WriteProfileStringA"(ByVallpszSectionAsString,ByVallpszKeyName_AsString,ByVallpszStringAsString)AsLong
PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"_(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
:
PrinterName="您想设定的打印机名称"
DimSAsString,lengthAsLong,hKeyAsLong
S=String(80,Chr(0))
length=GetProfileString("devices",PrinterName,"",S,Len(S))
S=Left(S,length)
CallWriteProfileString("windows","device",PrinterName&","&S)_
CallSendMessage(HWND_BROADCAST,
NT预设打印机的方法,
Value是:WM_WININICHANGE,&H7FFF&,ByVal"windows")至於改变则是改变登录资料库(Registry)打印机的设定,在登录资料库中纪录预设打印机的
HKEY_CURRENT_USER
\Software\Microsoft\WindowsNT\CurrentVersion\Windows
(3)VB中获取指定打印机的各种纸张类型及大小subkey的Devicevalue
放入一个MSFlexGrid,名称为fgd1,列数为4
'OptionExplicit
PrivateConstDC_MAXEXTENT=5
PrivateConstDC_MINEXTENT=4
PrivateConstDC_PAPERNAMES=16
PrivateConstDC_PAPERS=2
PrivateConstDC_PAPERSIZE=3
PrivateDeclareFunctionDeviceCapabilitiesLib""Alias"DeviceCapabilitiesA"(ByVallpDeviceNameAsString,ByVallpPortAsString,ByValiIndexAsLong,lpOutputAsAny,lpDevModeAsAny)AsLongPrivateTypePOINTS
xAsLong
yAsLong
EndType
PrivateSubForm_Load()
DimiAsLong
Wi