明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 无痕

[原创] !将vbscript移植到lisp!

    [复制链接]
发表于 2007-8-21 12:29:00 | 显示全部楼层
本帖最后由 作者 于 2007-8-21 12:32:28 编辑

无痕已公布源碼,就差數組的處理

我也在想簡單的方法,下面只寫出數組

(if (= -1 (vlax-invoke MSSC 'eval "isarray(GetValue)"))
  (progn
    (setq UB  NIL
   N   1
   LST NIL
    )
    (while (= NIL UB)
      (if
 (/=
   (vl-catch-all-error-p
     (vl-catch-all-apply
       'vlax-invoke
       (list MSSC 'eval (strcat "UBound(GETVALUE," (rtos N) ")"))
     )
   )
   t
 )
  (setq
    LST (append
   LST
   (list (list (vlax-invoke
          MSSC
          'eval
          (strcat "LBound(GETVALUE," (rtos N) ")")
        )
        (vlax-invoke
          MSSC
          'eval
          (strcat "UBound(GETVALUE," (rtos N) ")")
        )
         )
   )
        )
  )
  (setq UB N)
      )
      (setq N (1+ N))
    )
    LST
  )
)


发表于 2007-8-21 13:17:00 | 显示全部楼层
没看到啊在哪儿
 楼主| 发表于 2007-8-25 13:34:00 | 显示全部楼层

一句话获得本机cpu序列号

(xxvbs "Set OBJ = GETObject(\"winmgmts:Win32_Processor.DeviceID='cpu0'\")" "OBJ.ProcessorId")

发表于 2007-11-8 20:21:00 | 显示全部楼层

看了各位老大的程序,我也作了一些改进,应该是更方便的调用了,示例代码如下,

;以下定义一个函数
(setq  FF "
 sub mMsgbox (aa,bb)
  msgbox aa & bb, vbOKCancel + vbInformation, \"混合编程\"
 end sub
"
)
;定义定义一个宏
(setq  msg "
 msgbox \"开始混合编程\"
"
)
;以下开始主程序
(defun c:Main (/ cc0 cc1)
 (setq str "
  $msg
  s1=\"v1+v2=\"
  s2=((setq v1 5 v2 6)(setq v2 (* v1 v2)))
  $ff
  mMsgbox s1,s2
 "
 )
 (SWS-vbs str "")
)
;因为暂时不支持注释,所以把注释写在下面了 
;(defun c:Main (/ cc0 cc1)
; (setq str "
;  $msg ;调用变量时候,在变量前加 $
;  s1=\"v1+v2=\"
;  s2=((setq v1 5 v2 6)(setq v2 (* v1 v2)));必须将lisp语句放在 ()里
;  $ff
;  mMsgbox s1,s2
; "
; )
; (SWS-vbs str "")
;) 
(c:Main)

发表于 2007-11-8 20:26:00 | 显示全部楼层

附件

以下是附件

本帖子中包含更多资源

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

x
发表于 2007-11-27 16:57:00 | 显示全部楼层

掘墓,这个东西得给挖到前排去。

利用这个东西,vbs资源多的人可就享福了。

发表于 2007-11-28 12:14:00 | 显示全部楼层

正合适我这种想头特大,又只懂一点点lisp的

发表于 2008-1-21 22:00:00 | 显示全部楼层
好好学
发表于 2008-1-24 23:34:00 | 显示全部楼层
无痕发表于2007-8-13 22:31:001.没有用到 wscript.exe,也没有写*.vbs程序里面加一句: (xxexpr \"< =>wscript\\.\" str \" \" \"m\")就是在把 \"wscript.\" 替换为 \" \".2.如果要支持js,  就把 (vlax-put-prop

请问版主您提到的返回值
是怎样编写的
可以说明一下吗
谢谢

另外可以引用 kernel32 来使用吗?
是否可以示范呢?

发表于 2008-10-7 14:27:00 | 显示全部楼层

前辈功力之高

吾辈唯有仰望

-------------------

当初这个帖子刚发布的时候,我看不懂,没有感觉.

现在回望到, 给我的冲击相当巨大,Lisp脱离CAD是我当初用ALISP最大的梦魇

现在接触VLISP后看到invoke的巨大潜力,终于在这里看到前辈的力作,潜力已被发掘了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 12:35 , Processed in 0.189793 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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