touch_xu 发表于 2012-4-25 18:49:53

【已解决】打印机改名问题求助 - 答案在5楼

本帖最后由 touch_xu 于 2012-4-28 18:46 编辑


看到论坛许多关于打印操作的方法及UDF, 好像没有看到关于打印机改名,求解中,比如如何将上图中打印名称改为Printer呢,谢谢!

附上网上找到的VBS版

502762378 发表于 2012-4-25 19:31:17

如果不是网络打印机的话,自己可以试试注册表

touch_xu 发表于 2012-4-25 20:09:29

这个可以试试,应该有现成的函数吧,期待

xyhqqaa 发表于 2012-4-26 10:25:14

注册表里可以实现好像。。。

502762378 发表于 2012-4-26 10:48:26


_renameprinter("123","456")

Func _renameprinter($old,$new)
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL")
   For $objItem In $colItems
      If $objItem.Name = $old Then
                        $objItem.renameprinter($new)
                EndIf

   Next
EndFunc

touch_xu 发表于 2012-4-26 19:50:17


502762378 发表于 2012-4-26 10:48 http://www.autoitx.com/images/common/back.gif


    总是有高人出现,太感谢了,测试发现对大小写不敏感,因我就必须要区分这个,比如我想将printer改为Printer就怎么都改不成功,看不懂WMI,请大家继续帮忙,十分感谢!

user3000 发表于 2012-4-26 20:04:12

回复 6# touch_xu

试一试用:
Chr(80) & Chr(114) & Chr(105) & Chr(110) & Chr(116) & Chr(101) & Chr(114)
代替 $new 变量!
以上字符串 == Printer

touch_xu 发表于 2012-4-26 20:16:03

回复touch_xu

试一试用:
Chr(80) & Chr(114) & Chr(105) & Chr(110) & Chr(116) & Chr(101) & Chr( ...
user3000 发表于 2012-4-26 20:04 http://www.autoitx.com/images/common/back.gif


    谢谢帮忙,不过这样也不行,也没有反应;
   只有中转一下,有一种方法是先改为其它名(如temp),然后再改为Printer,应该有比较好的方法。
页: [1]
查看完整版本: 【已解决】打印机改名问题求助 - 答案在5楼