你们的欢迎大家。我和我的一本书“Advanced VBScript”,Jones,Hicks...其中大部分是可行的/可转换为LISP ...
- (defun _GetPrinterClientInfo ( / olePrn result )
- (vl-catch-all-apply
- '(lambda ( )
- (setq
- olePrn (vlax-create-object "OlePrn.PrinterURL")
- result (vlax-get-property olePrn 'ClientInfo)
- )
- )
- )
- (vl-catch-all-apply
- '(lambda ( )
- (vlax-release-object olePrn)
- )
- )
- (if result result 0)
- )
- (defun _DecodePrinterUnicodeName ( prnName / oleCvr result )
- (vl-catch-all-apply
- '(lambda ( )
- (setq
- oleCvt (vlax-create-object "OlePrn.OleCvt")
- result (vlax-get-property oleCvt 'DecodeUnicodeName prnName)
- )
- )
- )
- (vl-catch-all-apply
- '(lambda ( )
- (vlax-release-object oleCvt)
- )
- )
- (if result result "")
- )
- (defun _ConnectToPrinter ( server printerUnicodeName / oleInstall share platform result )
- (vl-catch-all-apply
- '(lambda ( )
- (setq
- oleInstall (vlax-create-object "OlePrn.OleInstall.1")
- share (_DecodePrinterUnicodeName printerUnicodeName)
- platform (itoa (_GetPrinterClientInfo))
- )
- (vlax-invoke-method
- oleInstall
- 'InstallPrinter
- (strcat "\\\" server "\" share)
- (strcat
- "http://"
- server
- "/printers/"
- printerUnicodeName
- "/.printer?createexe&"
- platform
- )
- )
- (setq result t)
- )
- )
- (vl-catch-all-apply
- '(lambda ( )
- (vlax-release-object oleInstall)
- )
- )
- result
- )
- ...
玩得开心。
|