明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2892|回复: 4

[LISP]Create a windows shortcut

[复制链接]
发表于 2003-11-29 12:44:00 | 显示全部楼层 |阅读模式

  1. ;;Create a windows shortcut
  2. ;;MODIFY BY 龙龙仔(LUCAS)
  3. ;;FIL = file name must have extension .lnk
  4. ;;CDIR = shortcut存于目录(目录不存在会出错)
  5. ;;TARGET = 执行档案
  6. ;;LST = DESCRIPTION
  7. ;;WDIR = WORKINGDIRECTORY
  8. ;;TAG = to overwrite it     T OR NIL
  9. ;;(F:WINDOWS_SHORTCUT  "CDCHECK.LNK" "C:\\LSP" "C:\\Cdcheck\\CDCheck.exe" '("CDCHECK") "C:\\LSP" T)  
  10. (defun F:WINDOWS_SHORTCUT
  11.        (FIL CDIR TARGET LST WDIR TAG / WSH LNK RET COMMENT)
  12.   (setq FIL (strcat CDIR "\" FIL))
  13.   (if (or (and (findfile FIL) TAG) (not (findfile FIL))) ;or
  14.     (progn (setq WSH (vlax-create-object "Wscript.Shell")
  15.                  LNK (vlax-invoke-method WSH 'CREATESHORTCUT FIL)
  16.            )                                ;setq
  17.            (if (not (setq COMMENT (car LST)))
  18.              (setq COMMENT "")
  19.            )
  20.            (if (and (F:VLERR 'vlax-put-property
  21.                              (list WSH 'CURRENTDIRECTORY CDIR)
  22.                              NIL
  23.                     )
  24.                     (F:VLERR 'vlax-put-property
  25.                              (list LNK 'TARGETPATH TARGET)
  26.                              NIL
  27.                     )
  28.                     (F:VLERR 'vlax-put-property
  29.                              (list LNK 'DESCRIPTION COMMENT)
  30.                              NIL
  31.                     )
  32.                     (F:VLERR 'vlax-put-property
  33.                              (list LNK 'WORKINGDIRECTORY WDIR)
  34.                              NIL
  35.                     )

  36.                     (F:VLERR 'vlax-invoke-method (list LNK 'SAVE) NIL)
  37.                )                        ;and
  38.              (progn (mapcar 'vlax-release-object (list WSH LNK))
  39.                     (setq RET t)
  40.              )                                ;progn
  41.            )                                ;if
  42.     )                                        ;progn
  43.   )                                        ;if
  44.   RET
  45. )
  46. ;;return the target path of a windows shortcut file (.lnk)
  47. ;;(F:GET_WINDOWS_SHORTCUT_PROPERTIES "cdcheck.lnk")
  48. (defun F:GET_WINDOWS_SHORTCUT_PROPERTIES (FIL / WSH LNK PTH COM)
  49.   (if (setq FIL (findfile FIL))
  50.     (progn (setq WSH (vlax-create-object "Wscript.Shell")
  51.                  LNK (vlax-invoke-method WSH 'CREATESHORTCUT FIL)
  52.                  PTH (vlax-get-property LNK 'TARGETPATH)
  53.                  COM (vlax-get-property LNK 'DESCRIPTION)
  54.            )                                ;setq
  55.            (mapcar 'vlax-release-object (list WSH LNK))
  56.     )
  57.   )
  58.   (if PTH
  59.     (list PTH COM)
  60.     NIL
  61.   )
  62. )

  63. ;;simplified error catching routine for vl-catch*
  64. ;;usage (setq en (f:vlerr 'vla-get-Area (list en) nil))
  65. ;;tag = true for debugging: princes error message
  66. (defun F:VLERR (FUN LST TAG / RET)
  67.   (if (vl-catch-all-error-p
  68.         (setq RET (vl-catch-all-apply FUN LST))
  69.       )
  70.     (if        TAG
  71.       (progn (princ (vl-catch-all-error-message RET)) NIL)
  72.       NIL
  73.     )
  74.     (if        (not RET)
  75.       (setq RET t)
  76.       RET
  77.     )
  78.   )
  79. )
发表于 2004-5-15 21:37:00 | 显示全部楼层
这个程序是作用是什么?给我们这些入门者指点指点.
发表于 2004-7-28 08:59:00 | 显示全部楼层
没有看懂
发表于 2004-7-29 22:09:00 | 显示全部楼层
构建windows下的快捷方式的的
发表于 2004-7-30 11:41:00 | 显示全部楼层
班主真是高手啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 01:28 , Processed in 0.170848 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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