找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 733|回复: 0

[LISP函数]:Create a windows shortcut

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

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  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. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-25 02:14 , Processed in 0.382291 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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