文档介绍:(1)MONDIAL控件叫CMDiag用如下代码可以使你选择的打印机成为默认打印机"Printer"==<>0ThenExitSub(2)VB里面,原本改变预设打印机的方法是:(假设安装有两种打印机(驱动程式))Set Printer = Printers(0) ' 将预设打印机设定成第一种打印机Set Printer = Printers(1) ' 将预设打印机设定成第二种打印机但实际上以上叙述有时候不会成功(原因不详),为了能够成功地改变预设打印机,以下是呼叫WindowsAPI的方法:(此一解决方案适用於Windows95,98):ConstHWND_BROADCAS=T&HFFFF&ConstWM_WININICHANGE=&H1APrivateDeclareFunctionGetProfileStringLib"kernel32"AliasString,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong)AsLong"GetProfileStringA"(ByVallpAppNameAsString,ByVallpKeyNameAsPrivateDeclareFunctionWriteProfileStringLib"kernel32"Alias"WriteProfileStringA"(ByVallpszSectionAsString,ByVallpszKeyNameAsString,ByVallpszStringAsString)AsLongPrivateDeclareFunction SendMessageLib"user32" Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny):PrinterName= "您想设定的打印机名称DimSAsString,lengthAsLong,hKeyAsLongS=String(80, Chr(0))length=GetProfileString("devices",PrinterName, "", S,Len(S))S=Left(S, length)CallWriteProfileString("windows","device", PrinterName &","&S)CallSendMessage(HWND_BROADCASTW,M_WININICHANGE,&H7FFF&,ByVal"windows")至於改变NT预设打印机的方法,则是改变登录资料库(Registry)打印机的设定,在登录资料库中纪录预设打印机的Value是:HKEY_CURRENT_USERsubkey的Devicevalue\Software\Microsoft\WindowsNT\CurrentVersion\Windows(3)VB中获取指定打印机的各种纸张类型及大小放入一个MSFlexGrid,名称为fgd1,列数为4'OptionExplicitPrivateConstDC_MAXEXTENT=5PrivateConstDC_MINEXTENT=4PrivateConstDC_PAPERNAMES=16PrivateConstDC_PAPERS=2PrivateConstDC_PAPERSIZE=3PrivateDeclareFunctionDeviceCapabilitiesLib""Alias"DeviceCapabilitiesA"(ByVallpDeviceNameAsString,ByVallpPortAsString,ByValiIndexAsLong,lpOutputAsAny,lpDevModeAsAny)AsLongPrivateTypePOINTSxAsLongyAsLongEndTypePrivateSubForm_Load()•FormatString ="A纸张编号|A纸张名称|A纸张长度|A纸张宽度”Fori=-1•ColWidth(i)=1700Nexti•AllowUserResizing=flexResizeColumns•Left==