wujinhua 发表于 2007-8-1 22:39:00

[求助]请问各位,怎样用LISP调出当前系统中的打印机名称

<p><font size="5">请问各位,怎样用LISP调出当前系统中的打印机名称,先谢了</font></p>

飞诗(fsxm) 发表于 2007-8-1 22:52:00

<p><a href="http://fsxm.bokee.com/viewdiary.15931006.html">http://fsxm.bokee.com/viewdiary.15931006.html</a></p><p>;;;dos_getprn&nbsp; fsxm-getprn 这个函数思路源自:xshrimp<br/>(defun fsxm-getprn (/ strprint)&nbsp;&nbsp;;Windows NT<br/>&nbsp; (setq&nbsp;strprint<br/>&nbsp; (vl-registry-read<br/>&nbsp;&nbsp;&nbsp; (strcat<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "HKEY_CURRENT_USER\\Software\\Microsoft\\"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Windows NT\\CurrentVersion\\Windows"<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; "Device"<br/>&nbsp; )<br/>&nbsp; )<br/>&nbsp; (substr strprint 1 (vl-string-search "," strprint))<br/>)</p>

winabcd 发表于 2007-8-6 17:35:00

<p>如果系统中安装了多台打印机,是否能全部得到呢?</p><p>我运行是只得互默认的打印机名.</p>

无痕 发表于 2007-8-7 23:29:00

<p>&nbsp;</p>点击打开-秒杀打印机列表 源码

飞诗(fsxm) 发表于 2007-8-8 21:07:00

<p>兄弟!我发了一个fsxm-getprn 的网址<a href="http://fsxm.bokee.com/viewdiary.15931006.html">http://fsxm.bokee.com/viewdiary.15931006.html</a></p><p>得到系统全部打印机的函数就是在这fsxm-getprn 的下面</p><p>原来你没有进去看啊!哎!</p><p></p><p>取得系统默认打印机:</p><p>;;;dos_getprn&nbsp; fsxm-getprn 这个函数思路源自:xshrimp<br/>(defun fsxm-getprn (/ strprint)&nbsp;&nbsp;;Windows NT<br/>&nbsp; (setq&nbsp;strprint<br/>&nbsp; (vl-registry-read<br/>&nbsp;&nbsp;&nbsp; (strcat<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "HKEY_CURRENT_USER\\Software\\Microsoft\\"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Windows NT\\CurrentVersion\\Windows"<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; "Device"<br/>&nbsp; )<br/>&nbsp; )<br/>&nbsp; (substr strprint 1 (vl-string-search "," strprint))<br/>)</p><p>取得系统全部打印机:</p><p>;;;dos_printers =&gt; fsxm-printers<br/>(defun fsxm-printers (/ return wshnetwork printlst i)<br/>&nbsp; (vl-catch-all-apply<br/>&nbsp;&nbsp;&nbsp; '(lambda ()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq WshNetwork (vlax-create-object "wscript.Network"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq return (vlax-invoke WshNetwork 'EnumPrinterConnections))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-release-object WshNetwork)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (/ (vlax-get return 'length) 2)<br/>&nbsp; (setq printlst (cons (vla-item return i) printlst))<br/>&nbsp; (setq i (+ 2 i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; printlst<br/>)</p><p>设置系统默认打印机:</p><p>;;;dos_setprn =&gt; fsxm-setprn<br/>(defun fsxm-setprn (printername / wshnetwork)<br/>&nbsp; (if (null<br/>&nbsp;(vl-catch-all-apply<br/>&nbsp;&nbsp; '(lambda ()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq WshNetwork (vlax-create-object "wscript.Network"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-invoke WshNetwork 'SetDefaultPrinter printername)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; t<br/>&nbsp; )<br/>)</p>

894560869 发表于 2009-10-24 08:03:00

路过,用用,谢谢

QUAN2518 发表于 2011-7-26 16:34:44

刚好要用到,顶下,
页: [1]
查看完整版本: [求助]请问各位,怎样用LISP调出当前系统中的打印机名称