- ;;;取得系统默认打印机:
- ;;;dos_getprn fsxm-getprn 这个函数思路源自:xshrimp
- (defun fsxm-getprn (/ strprint) ;Windows NT
- (setq strprint
- (vl-registry-read
- (strcat
- "HKEY_CURRENT_USER\\Software\\Microsoft\"
- "Windows NT\\CurrentVersion\\Windows"
- )
- "Device"
- )
- )
- (substr strprint 1 (vl-string-search "," strprint))
- )
- ;;;取得系统全部打印机:
- ;;;dos_printers => fsxm-printers
- (defun fsxm-printers (/ return wshnetwork printlst i)
- (vl-catch-all-apply
- '(lambda ()
- (setq WshNetwork (vlax-create-object "wscript.Network"))
- (setq return (vlax-invoke WshNetwork 'EnumPrinterConnections))
- (setq i 1)
- (vlax-release-object WshNetwork)
- (repeat (/ (vlax-get return 'length) 2)
- (setq printlst (cons (vla-item return i) printlst))
- (setq i (+ 2 i))
- )
- )
- )
- printlst
- )
- ;;;设置系统默认打印机:
- ;;;dos_setprn => fsxm-setprn
- (defun fsxm-setprn (printername / wshnetwork)
- (if (null
- (vl-catch-all-apply
- '(lambda ()
- (setq WshNetwork (vlax-create-object "wscript.Network"))
- (vlax-invoke WshNetwork 'SetDefaultPrinter printername)
- )
- )
- )
- t
- )
- )
|