狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

列出服務(wù)器上的打印機(jī) 

列出服務(wù)器上的打印機(jī) 

更新時(shí)間:2024-04-12 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

組件邏輯

這個(gè)組件以“硬方式”編寫以便說明如何在VB中調(diào)用Wivdons API, 如果你使用VB5中的printer 類也可以實(shí)現(xiàn)相同的功能。

這個(gè)組件調(diào)用了由Windows2000使用的EnumPrinters函數(shù)。這個(gè)函數(shù)以五種格式之一返回一個(gè)打印機(jī)列表,格式是由你確定的“等級(jí)”而定。在這個(gè)例子里,我們使用第四級(jí),它只是列舉了我們NT服務(wù)器所連接的打印機(jī)名字和位置(直接連接或網(wǎng)絡(luò)連接)。

 

注意

在這里顯示的組件代碼只適用于Windows NT,如果你在Windows95上運(yùn)行Personal Web Server的話,使用第五級(jí)。Windows 95將網(wǎng)絡(luò)打印機(jī)當(dāng)作本地打印機(jī)處理。

第五級(jí)的打印結(jié)構(gòu)同第四級(jí)的有略微的不同之處,使用VB5 API瀏覽器將PRINTER_INFO_5結(jié)構(gòu)體復(fù)制到你的代碼中。

 

這是一個(gè)功能強(qiáng)大的API調(diào)用,可帶許多不同的參數(shù)。Visual C的幫助文件提供如何使用EnumPrinters函數(shù)的細(xì)節(jié),但將C形式的語法翻譯成VB語句可能具有挑戰(zhàn)勝。你可以從www.microsoft.com網(wǎng)點(diǎn)中下載Microsoft Knowledge Base article Q166008來獲得如何翻譯的額外細(xì)節(jié)信息。

我們將返回信息存在一個(gè)長整數(shù)組中因?yàn)樗绕渌图?jí)的儲(chǔ)存結(jié)構(gòu)更便于操作和索引。通過PtrToStr和StrLen調(diào)用,我們能夠?qū)㈤L整數(shù)數(shù)組轉(zhuǎn)換成字符串,這種結(jié)果在VB中最容易使用。

當(dāng)確定了有多少打印機(jī)與系統(tǒng)相連,我們r(jià)edim(重定義)兩個(gè)數(shù)組(m_aDeviceName和m_ServerName)來存儲(chǔ)所發(fā)現(xiàn)打印機(jī)數(shù)目。如果沒有發(fā)現(xiàn)打印機(jī),這些代碼將不會(huì)執(zhí)行,因?yàn)殄e(cuò)誤處理代碼將接管程序的執(zhí)行。

 

編寫源代碼

再一次啟動(dòng)一個(gè)新的VB6 ActiveX DLL項(xiàng)目,VB顯示了一個(gè)缺省的代碼窗口名叫Class1,按F4,按以下修改屬性表:

(Name)WebPrinters

Instancing 5 - MultiUse

選擇Projects |Project 1 Properties將項(xiàng)目名改為Web Utils,并選擇Unattended Execution。選項(xiàng)最后最后單擊對(duì)話框的Make表欄并選擇Auto Increment,按OK鍵保存設(shè)置。

下面代碼包含了打印機(jī)組件的源代碼,這個(gè)組件只是列舉了你系統(tǒng)上的打印機(jī)——你可以擴(kuò)展其代碼事完成實(shí)際的打印任務(wù)。不象先前的VB組件,這個(gè)例子使用VB的Get 和Let屬性。對(duì)這些屬性的討論超過了本例的范圍,但Microsoft’s Visual Books Online(與VB5捆綁在一起)包含了這兩個(gè)屬性的深層次解釋。

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

創(chuàng)建DLL

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

選擇File|Make WebUtils DLL來創(chuàng)建DLL。這個(gè)組件將保存在同你保存源代碼相同路徑下。

在命令行中通過以下命令注冊(cè)DLL。

RegSvr32 c:\Utils\WebUtils.dll

 

在頁面中使用組件

下面顯示的ASP代碼將列出與你系統(tǒng)相連的所有打印機(jī)。通過改寫這些代碼,你可以添加一個(gè)下拉列表框,使得用戶在其中選擇一個(gè)打印機(jī),然后將他們的選擇傳遞給你自己的定制組件,將報(bào)告輸出到所選的打印機(jī)上。

 

Printers.asp

--------------------------------------------------------------------------------


<% Option Explicit %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <TITLE>System Printers</TITLE></HEAD>

<BODY BGCOLOR="#FFFFFF"><FONT SIZE="2" FACE="Verdana, Arial, Helvetica">

<CENTER><H1>Web Server Printers</H1></CENTER><HR Color="Red">

<%
  Dim oSystemPrinters
  Dim i
  Set oSystemPrinters = Server.CreateObject("WebUtils.WebPrinters")
%>
  There are <%=oSystemPrinters.PrinterCount%> Server printers<BR>
<%
   i = oSystemPrinters.PrinterCount
   If i > 0 Then
     For i = 0 to i - 1
%>
      Printer <% =cstr(i + 1) %>: <%=oSystemPrinters.deviceName(cint(i))%><BR>
   <%
      Next
    End If
    
  Set oSystemPrinters = Nothing ' De-reference the object
%>
</BODY>
</HTML>

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
欧美精选一区| 久久99国产精品久久| 91啪九色porn原创视频在线观看| 欧美午夜精品免费| 亚洲国产精品视频| 国产一区二区高清视频| 亚洲欧美日韩一区二区| 欧美日韩高清免费| 26uuu另类欧美| 国产精品91一区二区| 欧美日本在线观看| 蜜桃视频一区二区| 在线观看日韩高清av| 男人的j进女人的j一区| 91福利社在线观看| 91视频观看视频| 精品久久一区二区| 99久久精品99国产精品| 91精品久久久久久久久99蜜臂| 毛片av一区二区三区| 欧美视频中文字幕| 国产资源精品在线观看| 欧美精品一二三四| 豆国产96在线|亚洲| 精品奇米国产一区二区三区| 东方欧美亚洲色图在线| 久久尤物电影视频在线观看| 欧美不卡在线| 亚洲免费av高清| 裸体素人女欧美日韩| 蜜桃视频在线观看一区二区| 欧美日韩一级片在线观看| 国模无码大尺度一区二区三区| 欧美一激情一区二区三区| 成人影视亚洲图片在线| 久久久99久久精品欧美| 海角社区69精品视频| 洋洋av久久久久久久一区| av成人毛片| 美国毛片一区二区三区| 欧美一区日本一区韩国一区| 丁香啪啪综合成人亚洲小说| 日本一区二区三区电影| 国产区欧美区日韩区| 理论电影国产精品| 精品99久久久久久| 亚洲精品乱码| 乱中年女人伦av一区二区| 日韩一级片在线播放| 欧美日韩系列| 亚洲v日本v欧美v久久精品| 欧美日韩电影一区| 欧美一区二区在线| 亚洲成人免费观看| 欧美一级二级三级蜜桃| 亚洲手机视频| 毛片av中文字幕一区二区| 精品久久久久久久久久久久久久久久久| 欧美日韩国产综合视频在线| 亚洲午夜av在线| 日韩欧美的一区| 91久久综合| 久久99精品一区二区三区 | 欧美va天堂| 午夜精品福利在线| 91精品国产欧美一区二区成人| 欧美日本韩国一区二区三区| 午夜精品久久久久久久蜜桃app| 在线播放一区二区三区| 狠狠色噜噜狠狠狠狠色吗综合| 日韩av高清在线观看| 精品成人在线观看| 久久影院亚洲| 欧美精品系列| 精品一区二区三区香蕉蜜桃 | 专区另类欧美日韩| 欧美日韩一级二级三级| 欧美日韩无遮挡| 久久精品国产99国产精品| 国产精品久久久久三级| 夜夜精品视频一区二区| 777色狠狠一区二区三区| 黄色av成人| 粉嫩av一区二区三区在线播放| 亚洲精品乱码久久久久久黑人| 91精品福利在线一区二区三区 | 亚洲日本欧美天堂| 欧美一卡二卡在线| 久久久成人网| 亚洲视频狠狠| 成人午夜视频网站| 蜜臀精品一区二区三区在线观看| 国产精品美女一区二区| 正在播放一区二区| 久久黄色小说| 1024成人| 欧美精品成人| 成人午夜精品在线| 久久99精品国产91久久来源| 一区二区三区不卡视频| 国产精品视频在线看| 日韩欧美高清在线| 欧美日韩视频在线观看一区二区三区 | 欧美日韩一区二区三区在线观看免 | 国产成人在线观看免费网站| 日日骚欧美日韩| 亚洲人被黑人高潮完整版| 久久久久久久久久久久久女国产乱| 在线观看www91| 久久国产精品99国产| 亚洲大胆av| 国模大胆一区二区三区| av一区二区三区黑人| 狠狠色丁香久久婷婷综| 日韩av一区二区三区四区| 亚洲午夜久久久久久久久电影网 | 久久99精品国产.久久久久久| 亚洲国产aⅴ成人精品无吗| 成人免费在线观看入口| 国产日韩欧美a| 久久精品一区二区三区不卡| 欧美mv日韩mv国产| 日韩欧美亚洲另类制服综合在线| 色av一区二区| 色av一区二区| 在线观看区一区二| 久久亚洲高清| 色哟哟精品一区| 久久精品99| 亚洲永久免费精品| 国产精品国产馆在线真实露脸 | 欧美日韩和欧美的一区二区| 在线免费观看日韩欧美| 91福利精品视频| 欧洲一区在线电影| 欧美主播一区二区三区| 欧美中文字幕一二三区视频| 久久一区中文字幕| 色婷婷一区二区三区四区| 91成人免费网站| 欧美日韩在线三级| 91麻豆精品国产自产在线| 日韩一区二区在线播放| 日韩三级高清在线| 国产日韩高清在线| 一区在线观看免费| 一区二区高清在线| 日韩专区中文字幕一区二区| 欧美96一区二区免费视频| 久久99这里只有精品| 国产资源精品在线观看| 成人午夜av在线| 欧美日韩综合网| 99热免费精品| 在线欧美日韩精品| 久久久亚洲精品一区二区三区| 在线欧美日韩精品| 国产精品久线观看视频| 在线综合欧美| 美日韩精品免费| 欧美性一区二区| 日韩欧美一区在线观看| 久久精品视频在线免费观看| 亚洲色图.com| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品一区二区久久| 91色|porny| 亚洲一区日韩| 欧美理论片在线| 日本一区二区电影| 亚洲va欧美va天堂v国产综合| 久久99精品国产麻豆不卡| 91婷婷韩国欧美一区二区| 国产欧美日韩伦理| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 色94色欧美sute亚洲线路二 | 337p日本欧洲亚洲大胆色噜噜| 国产精品久久久久影院亚瑟| 五月综合激情网| 成人精品一区二区三区四区| 亚洲片区在线| 欧美精品一级二级| 自拍偷拍亚洲综合| 久久国产欧美日韩精品| 欧美日韩成人| 欧美吻胸吃奶大尺度电影| 国产亚洲精品免费| 日韩黄色免费电影| 欧美freesex交免费视频| 一本色道a无线码一区v| 精品国产成人系列| 亚洲va欧美va国产va天堂影院| 国产白丝网站精品污在线入口| 99热精品在线观看| 欧美成人精品3d动漫h| 亚洲综合在线第一页| 不卡的av电影在线观看| 一本一道久久a久久精品综合蜜臀| 欧美成人一区二区三区片免费| 亚洲超碰97人人做人人爱|