盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

列出服务器上的打印机 

时间:2025/1/21作者:未知来源:盾怪网教程人气:

[摘要]Project 1 Properties将项目名改为Web Utils,并选择Unattended Execution。选项最后最后单击对话框的Make表栏并选择Auto Increment,按OK...
Project 1 Properties将项目名改为Web Utils,并选择Unattended Execution。选项最后最后单击对话框的Make表栏并选择Auto Increment,按OK键保存设置。

下面代码包含了打印机组件的源代码,这个组件只是列举了你系统上的打印机——你可以扩展其代码事完成实际的打印任务。不象先前的VB组件,这个例子使用VB的Get 和Let属性。对这些属性的讨论超过了本例的范围,但Microsoft’s Visual Books Online(与VB5捆绑在一起)包含了这两个属性的深层次解释。

Option Explicit

Private Declare Function EnumPrinters Lib "winspool.drv" _
                Alias "EnumPrintersA" _
                (ByVal flags As Long, ByVal name As String, _
                ByVal Level As Long, pPrinterEnum As Long, _
                ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) _
                As Long

Private Declare Function PtrToStr Lib "Kernel32" Alias "lstrcpyA" _
                (ByVal RetVal As String, ByVal Ptr As Long) As Long

Private Declare Function StrLen Lib "Kernel32" Alias "lstrlenA" _
                (ByVal Ptr As Long) As Long

Private Type PRINTER_INFO_4
     pPrinterName As String
     pServerName As String
     Attributes As Long
End Type

Private Const PRINTER_ENUM_LOCAL = &H2
Private Const PRINTER_ENUM_CONNECTIONS = &H4
Private Const PRINTER_ENUM_NAME = &H8
Private Const PRINTER_ENUM_NETWORK = &H40
Private Const PRINTER_ENUM_REMOTE = &H10
Private Const PRINTER_ENUM_SHARED = &H20

Private m_iPrinterCount As Integer
Private m_aDeviceName() As String
Private m_aServer() As String

Private Property Let PrinterCount(iValue As Integer)
     m_iPrinterCount = iValue
End Property

Public Property Get PrinterCount() As Integer
    PrinterCount = m_iPrinterCount
End Property

Private Property Let DeviceName(iIndex As Integer, sValue As String)
    m_aDeviceName(iIndex) = sValue
End Property

Public Property Get DeviceName(iIndex As Integer) As String
    DeviceName = m_aDeviceName(iIndex)
End Property

Private Property Let Server(iIndex As Integer, sValue As String)
    m_aServer(iIndex) = sValue
End Property

Public Property Get Server(iIndex As Integer) As String
    Server = m_aServer(iIndex)
End Property

Private Sub Class_Initialize()
  Dim bReturn As Boolean
  Dim lFlags As Long
  Dim sName As String
  Dim lLevel As Long
  Dim lBuffer() As Long
  Dim lCdBuf As Long
  Dim lPcbNeeded As Long
  Dim lEntries As Long
  Dim i As Integer
  Dim lTemp As Long
  Dim sTempString As String

  lFlags = PRINTER_ENUM_CONNECTIONS Or PRINTER_ENUM_LOCAL
  sName = vbNullString
  lLevel = 4
  lCdBuf = 3072
  ReDim lBuffer((lCdBuf \ 4) - 1) As Long

  bReturn = EnumPrinters(lFlags, sName, lLevel, lBuffer(0), lCdBuf, lPcbNeeded, lEntries)
  PrinterCount = lEntries ' Number Printers Found

  ReDim m_aDeviceName(PrinterCount) As String
  ReDim m_aServer(PrinterCount) As String
  ReDim m_aPaperBin(PrinterCount) As String
  ReDim m_aPaperSize(PrinterCount) As String
  
  For i = 0 To PrinterCount - 1  ' Set the Device Name
   sTempString = Space(StrLen(lBuffer(i * 3)))
   lTemp = PtrToStr(sTempString, lBuffer(i * 3))
   DeviceName(i) = sTempString ' Set the Server Name
   
   sTempString = Space(StrLen(lBuffer(i * 3 + 1)))
   lTemp = PtrToStr(sTempString, lBuffer(i * 3 + 1))
   Server(i) = sTempString
   
  Next i

End Sub

创建DLL

将你的工作保存到磁盘上,例如:c:\Utils。

选择File

关键词:列出服务器上的打印机 




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版