fuinei 发表于 2012-3-29 14:58:04

[已解决]列出本机所有打印机的方法

本帖最后由 fuinei 于 2012-3-29 17:11 编辑

各位好,论坛中有很多贴子关于如何自动添加网络打印机和设置默认打印机的方法,但在测试的过程中发现自动添加网络打印机有些会报错,希望做一个校验判断打印机有没有添加成功,请问有没有命名或函数可列出当前所连接的所有打印机(含本机/网络)的名称呢?

502762378 发表于 2012-3-29 15:46:22

其实很简单的,大部分都是WMI操作
_wmi_Win32_ShowaddPrinter()
Func _wmi_Win32_ShowaddPrinter()
        Local $strComputer = "localhost"
    Local $Output = ""
        Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
        $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL",48)
        For $objItem In $colItems
              $Output &= $objItem.Caption & @CRLF
        Next
    MsgBox(1,$strComputer&"连接的打印机和传真为:",$Output)
EndFunc

fuinei 发表于 2012-3-29 17:11:18

回复 2# 502762378
谢谢502762378兄的指导,你的代码完全符合我的要求,看来要学好windows的自动化操作学习WMI部分是必不可少的,能否推荐一下比较好的学习WMI的资料.

502762378 发表于 2012-3-29 17:19:52

回复 3# fuinei


    http://www.autoitx.com/forum.php?mod=viewthread&tid=477&highlight=WMI%2B
这篇文章我反复看过很多次,AU3自带有AutoIt Scriptomatic 工具,再有就是反复测试root\CIMV2中每个类中属性的信息

fuinei 发表于 2012-3-29 18:21:19

谢谢分享,一定抽空学习!

ojoojo 发表于 2012-5-22 10:21:03

谢谢分享,一定抽空学习!
页: [1]
查看完整版本: [已解决]列出本机所有打印机的方法