EnumPrinters
VB声明
Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" (ByVal flags As Long, ByVal name As String, ByVal Level As Long, pPrinterEnum As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
说明
枚举系统中安装的打印机
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
flags Long,一个或多个下述标志
PRINTER_ENUM_LOCAL 枚举本地打印机(包括Windows 95中的网络打印机)。名字会被忽略
PRINTER_ENUM_NAME 枚举由name参数指定的打印机。其中的名字可以是一个供应商、域或服务器。如name为NULL,则枚举出可用的打印机
PRINTER_ENUM_SHARE 枚举共享打印机(必须同其他常数组合使用)
PRINTER_ENUM_CONNECTIONS 枚举网络连接列表中的打印机(即使目前没有连接——仅适用于NT)
PRINTER_ENUM_NETWORK 枚举通过网络连接的打印机。级别(Level)必须为1。仅适用于NT
PRINTER_ENUM_REMOTE 枚举通过网络连接的打印机和打印服务器。级别必须为1。仅适用于NT
name String,vbNullString表示枚举同本机连接的打印机。否则由标志和级别决定
Level Long,1,2,4或5(4仅适用于NT;5仅适用于Win95和NT 4.0),指定欲枚举的结构的类型。如果是1,则name参数由标志设置决定。如果是2或5,那么name就代表欲对其打印机进行枚举的服务器的名字;或者为vbNullString。如果是4,那么只有PRINTER_ENUM_LOCAL和PRINTER_ENUM_CONNECTIONS才有效。名字必须是vbNullString
pPrinterEnum Byte,包含PRINTER_ENUM_x结构的缓冲区,其中的x代表级别(Level)
cbBuf Long,pPrinterEnum缓冲区中的字符数量
pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量
pcReturned Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数)
注解

第4和第5级将它们的结构建立在系统注册表的基础上,而且比第2级快得多。后者要求每台打印机都处于打开状态
请参考微软Win32手册,了解这个函数进一步的情况

Top