ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4217|回复: 6

[原创]一个WMI相关的双面打印例子

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-3-13 16:38 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:WMI应用

在这里查了一下,WMI的应用似乎较少,有一个脚本级的例子,在VBA/VBS的代码中是很实用的

我给出实际的应用例吧

先给出函数,使用的方法是诸如 SET X=myprinters(".") 

参数是一个代表计算机的字符串(实际上WMI一般都很少去查到其它机,除非你是域管理员),返回值是一个打印机集合,你必须用FOR EACH NEXT集合去遍历它

Public intSelect
'通过WMI得到打印机集合,查询本机的strComputer一般用"."
'通过WMI查询的前提,是WMI服务起动(Windows Management Instrumentation服务)
'现在的WIN2000、WINXP账户一般默认都装了这个服务
Function MyPrinters(strComputer)
Set objWmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set MyPrinters = objWmi.ExecQuery("Select * from Win32_Printer")
End Function

这样的东东有什么好处呢?嗯,当你的VBA代码要自动打印,而用户的机器有不止一台打印机时,如果你直接用

activesheet.printout  或activesheet.printpreview

那就打到默认的打印机上了.......所以要给他们一个选择,而要做选择的话,你得知道那些打印机都是什么:也就是PRINTOUT的参数,ACTIVEPRINTER

所以,我们得知道所有在那台计算机上已经安装的打印机名字.......再弄一个下拉列表什么的,让用户看看选一选,而他们觉得这是理所当然的

下面的附件是一个例子,除了WMI,其它的代码是双面打印相关示例(这也是有时会遇到的问题,如果打印机没有双面打印的硬件,就只好先打奇偶面之一),SHEET1的数据都是垃圾,拿来充页数的,就不用去研究了

IM0VtRuR.rar (23.61 KB, 下载次数: 230)


其它,调试这段代码时,用WIM的脚本似乎在WIN2000的系统上不能取得“默认的打印机”是哪一台,在MICROSOFT网站上也没有找到答案,所以我暂时想不出“让用户选择不同的打印机时,一开始定位到默认打印机”的方法,只能胡乱指定一台,比如说,第一号打印机.......这不是很好的方案,但也没有办法

[此贴子已经被作者于2008-3-13 16:46:06编辑过]

TA的精华主题

TA的得分主题

发表于 2008-3-13 16:43 | 显示全部楼层
谢谢分享

TA的精华主题

TA的得分主题

发表于 2009-1-16 09:50 | 显示全部楼层
是不是可以用Application.ActivePrint

TA的精华主题

TA的得分主题

发表于 2010-5-25 14:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-4-7 13:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-4-8 10:56 | 显示全部楼层

正需要啊!

正需要啊!布知道是不是我想要的。

TA的精华主题

TA的得分主题

发表于 2016-9-8 11:18 | 显示全部楼层
恩,暂时没看懂,慢慢来解析下~~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 11:05 , Processed in 0.045675 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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