仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 511|回复: 10
打印 上一主题 下一主题

[学习教程] ASP网页设计列出服务器上的打印机

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。打印|服务器组件逻辑

这个组件以“硬体例”编写以便申明怎样在VB中挪用WivdonsAPI,假如你利用VB5中的printer类也能够完成不异的功效。

这个组件挪用了由Windows2000利用的EnumPrinters函数。这个函数以五种格局之一前往一个打印机列表,格局是由你断定的“品级”而定。在这个例子里,我们利用第四级,它只是枚举了我们NT服务器所毗连的打印机名字和地位(间接毗连或收集毗连)。

 

注重

在这里显现的组件代码只合用于WindowsNT,假如你在Windows95上运转PersonalWebServer的话,利用第五级。Windows95将收集打印机看成当地打印机处置。

第五级的打印布局同第四级的有稍微的分歧的地方,利用VB5API扫瞄器将PRINTER_INFO_5布局体复制到你的代码中。

 

这是一个功效壮大的API挪用,可带很多分歧的参数。VisualC的匡助文件供应怎样利用EnumPrinters函数的细节,但将C情势的语法翻译成VB语句大概具有应战胜。你能够从www.microsoft.com网点中下载MicrosoftKnowledgeBasearticleQ166008来取得怎样翻译的分外细节信息。

我们将前往信息存在一个长整数组中由于它比别的更初级的贮存布局更便于操纵和索引。经由过程PtrToStr和StrLen挪用,我们可以将长整数数组转换成字符串,这类了局在VB中最简单利用。

当断定了有几打印机与体系相连,我们redim(重界说)两个数组(m_aDeviceName和m_ServerName)来存储所发明打印机数量。假如没有发明打印机,这些代码将不会实行,由于毛病处置代码将接受程序的实行。

 

编写源代码

再一次启动一个新的VB6ActiveXDLL项目,VB显现了一个缺省的代码窗口名叫Class1,按F4,按以下修正属性表:

(Name)WebPrinters

Instancing5-MultiUse

选择Projects|Project1Properties将项目名改成WebUtils,并选择UnattendedExecution。选项最初最初单击对话框的Make表栏并选择AutoIncrement,按OK键保留设置。

上面代码包括了打印机组件的源代码,这个组件只是枚举了你体系上的打印机――你能够扩大其代码事完成实践的打印义务。不象先前的VB组件,这个例子利用VB的Get和Let属性。对这些属性的会商凌驾了本例的局限,但Microsoft’sVisualBooksOnline(与VB5绑缚在一同)包括了这两个属性的深条理注释。

OptionExplicit

PrivateDeclareFunctionEnumPrintersLib"winspool.drv"_
Alias"EnumPrintersA"_
(ByValflagsAsLong,ByValnameAsString,_
ByValLevelAsLong,pPrinterEnumAsLong,_
ByValcdBufAsLong,pcbNeededAsLong,pcReturnedAsLong)_
AsLong

PrivateDeclareFunctionPtrToStrLib"Kernel32"Alias"lstrcpyA"_
(ByValRetValAsString,ByValPtrAsLong)AsLong

PrivateDeclareFunctionStrLenLib"Kernel32"Alias"lstrlenA"_
(ByValPtrAsLong)AsLong

PrivateTypePRINTER_INFO_4
pPrinterNameAsString
pServerNameAsString
AttributesAsLong
EndType

PrivateConstPRINTER_ENUM_LOCAL=&H2
PrivateConstPRINTER_ENUM_CONNECTIONS=&H4
PrivateConstPRINTER_ENUM_NAME=&H8
PrivateConstPRINTER_ENUM_NETWORK=&H40
PrivateConstPRINTER_ENUM_REMOTE=&H10
PrivateConstPRINTER_ENUM_SHARED=&H20

Privatem_iPrinterCountAsInteger
Privatem_aDeviceName()AsString
Privatem_aServer()AsString

PrivatePropertyLetPrinterCount(iValueAsInteger)
m_iPrinterCount=iValue
EndProperty

PublicPropertyGetPrinterCount()AsInteger
PrinterCount=m_iPrinterCount
EndProperty

PrivatePropertyLetDeviceName(iIndexAsInteger,sValueAsString)
m_aDeviceName(iIndex)=sValue
EndProperty

PublicPropertyGetDeviceName(iIndexAsInteger)AsString
DeviceName=m_aDeviceName(iIndex)
EndProperty

PrivatePropertyLetServer(iIndexAsInteger,sValueAsString)
m_aServer(iIndex)=sValue
EndProperty

PublicPropertyGetServer(iIndexAsInteger)AsString
Server=m_aServer(iIndex)
EndProperty

PrivateSubClass_Initialize()
DimbReturnAsBoolean
DimlFlagsAsLong
DimsNameAsString
DimlLevelAsLong
DimlBuffer()AsLong
DimlCdBufAsLong
DimlPcbNeededAsLong
DimlEntriesAsLong
DimiAsInteger
DimlTempAsLong
DimsTempStringAsString

lFlags=PRINTER_ENUM_CONNECTIONSOrPRINTER_ENUM_LOCAL
sName=vbNullString
lLevel=4
lCdBuf=3072
ReDimlBuffe</p>帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。
老尸 该用户已被删除
沙发
发表于 2015-1-20 06:48:57 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
乐观 该用户已被删除
板凳
发表于 2015-1-28 22:21:36 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
若相依 该用户已被删除
地板
发表于 2015-2-1 16:15:13 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-1 16:19:05 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
莫相离 该用户已被删除
6#
发表于 2015-2-3 05:52:27 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
小妖女 该用户已被删除
7#
发表于 2015-2-8 19:49:09 | 只看该作者
掌握asp的特性而且一定要知道为什么。
变相怪杰 该用户已被删除
8#
发表于 2015-2-25 23:44:05 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
再现理想 该用户已被删除
9#
发表于 2015-3-8 10:29:12 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
透明 该用户已被删除
10#
发表于 2015-3-15 22:06:26 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
再见西城 该用户已被删除
11#
发表于 2015-3-22 05:45:08 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 11:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表