明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3179|回复: 4

[原创]秒杀本地打印机列表

[复制链接]
发表于 2007-8-7 23:27 | 显示全部楼层 |阅读模式
问题的提出:LISP调出当前系统中的打印机名称
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=61974
  1. ;| (getlocprns) = 获取本地打印机. --------by 狂刀.2007.8
  2. 返回: (打印机名1 端口1 印机名2 端口2....) 列表
  3. 实例:
  4. (getlocprns)
  5. ;返回: ("Canon BJC-6500 (BJRSTR)" "LPT1:" "hp deskjet 695c series" "LPT1:")
  6. |;
  7. (defun getlocprns  (/ wsn prn i lst)
  8.   (setq wsn (vla-GetInterfaceObject (vlax-get-acad-object)
  9.         "WScript.Network")
  10. prn (vlax-invoke wsn 'EnumPrinterConnections)
  11. i   -1)
  12.   (repeat (vlax-invoke-method prn 'count)
  13.     (setq lst (cons (vla-item prn (setq i (1+ i))) lst))
  14.     )
  15. )

点评

有用  发表于 2024-4-12 10:09
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2007-8-8 00:02 | 显示全部楼层
本帖最后由 作者 于 2007-8-8 1:59:27 编辑

其它方法:
  1. (setq str "
  2. Set WshNetwork = WScript.CreateObject("WScript.Network")
  3. Set oPrinters = WshNetwork.EnumPrinterConnections
  4. ret = ""
  5. For i = 0 to oPrinters.Count - 1 Step 2
  6. ret = ret & chr(34) & oPrinters.Item(i+1) & chr(34)
  7. Next
  8. ret =  "(" & ret &  ")"
  9. ")
  10. (read (xxvbs str "ret")) -> ("hp deskjet 695c series" "Canon BJC-6500 (BJRSTR)")
  1. (setq str "
  2. strComputer = "."
  3. ret = ""
  4. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")
  5. Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer")
  6. For Each objPrinter in colInstalledPrinters
  7.     ret = ret & chr(34) & objPrinter.Name & chr(34)
  8. Next
  9. ret =  "(" & ret &  ")"
  10.       ")
  11. (read (xxvbs str "ret")) -> ("hp deskjet 695c series" "Canon BJC-6500 (BJRSTR)")
xxvbs 介绍及函数下载地址:

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62106
 楼主| 发表于 2007-8-8 04:09 | 显示全部楼层
本帖最后由 作者 于 2007-8-8 10:13:16 编辑

函数介绍和下载,应用实例:

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62106

发表于 2007-8-8 09:00 | 显示全部楼层

能不能让程序按照我的图幅(LIMITS 命令设置的系统变量)、比例(参照DIMSCALE或LTSCALE系统变量)等,将打印配置设置好。执行打印命令时直接按"确定"即可完成打印,不再需要进行任何设置。好像曾经打印过一样。

关键是如何才能够,事先用程序将"打印区域"设置为"图形界限"呢?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-16 02:25 , Processed in 0.354744 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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