明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2832|回复: 12

[源码] ActiveX

[复制链接]
发表于 2020-3-19 19:41:58 | 显示全部楼层 |阅读模式
本帖最后由 1291500406 于 2020-11-18 15:43 编辑

很早以前dos的时代
方法1   start
(command "start" "shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}")
(command "start" "c:/")

方法2 shell
(command "shell"(strcat "start " "shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}"))
(command "shell" "start c:/")

外部软件  微软公司提供了两个应用  explorer  rundll32 ~
方法3   explorer
(startapp "explorer shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}")
(startapp "explorer c:/")

方法4   rundll32
(startapp "rundll32 url.dll,FileProtocolHandler shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}")
(startapp "rundll32 url.dll,FileProtocolHandler c:/")

ActiveX方法最多 数不清 以下是部分举例

方法5  ToggleDesktop
(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ToggleDesktop" )

方法6  open
(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"open" "shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}")

(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"open" "c:\\")

方法7  run
(vlax-invoke(vlax-create-object"{72c24dd5-d70a-438b-8a42-98424b88afb8}")"run" "shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}" )

(vlax-invoke(vlax-create-object"{72c24dd5-d70a-438b-8a42-98424b88afb8}")"run" "c:/")

方法8  ControlPanelItem

(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ControlPanelItem""shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}" )
(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ControlPanelItem""c:/" )

方法9 SpecialFolders

(set 'bbActiveX(vlax-create-object"{72c24dd5-d70a-438b-8a42-98424b88afb8}"))
(vlax-invoke bbActiveX "exec"(strcat "explorer.exe "(vla-item(vlax-get bbActiveX "SpecialFolders" ) "desktop")))

(vlax-invoke bbActiveX "exec"(strcat "explorer.exe "(vla-item(vlax-get bbActiveX "SpecialFolders" ) "c:/")))

方法10 ShellExecute

(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ShellExecute""rundll32" "url.dll,FileProtocolHandler shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}")

(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ShellExecute""rundll32" "url.dll,FileProtocolHandler c:/")

方法一:
(Close(open "D:\\bbtxt0.txt""w"))

方法二:
(vlax-invoke-Method(Vlax-Invoke-Method(vlax-create-object "{0d43fe01-f093-11cf-8940-00a0c9054228}")"CreateTextFile" "D:\\bbtxt1.txt" nil 0)"Close")

方法三:
(vlax-invoke(vlax-invoke(vlax-create-object "{0d43fe01-f093-11cf-8940-00a0c9054228}")"OpenTextFile" "D:\\bbtxt2.txt"  nil  8 -1)"Close")

方法四:
(Setq obj (Vlax-Get-Or-Create-Object "{00000566-0000-0010-8000-00aa006d2ea4}" ))
(vlax-invoke obj  "open")
(Vlax-Invoke-Method obj  "SaveToFile"  "D:\\bbtxt3.txt" 2)
(Vlax-Invoke obj  "Close" )

方法五:

(command "shell" "dir> D:\\BBBBB.TXT")
方法六:
(command "shell" "echo > D:\\BBBBbbB.TXT")



繁体简体互转
(defun bb-fantitostr (lst mod  / bb-str W D  lst1 )
(vl-load-com)
(setq lst1 nil)
(foreach  str  lst
(setq    W(vlax-create-object"{000209FF-0000-0000-C000-000000000046}"))
(setq  D(vlax-invoke-method(vla-get-Documents W) 'add))
(vlax-invoke-method (vla-get-Selection W)"TypeText"  str )
(vlax-invoke-method(vlax-invoke-method D  'Range) ' TCSCConverter mod -1 -1)
(setq lst1 (cons  (vl-string-right-trim  "\r" (vlax-get(vlax-invoke-method  D  'Range) ' Text) )   lst1 ))
(vlax-put D ' Saved -1)
(vlax-invoke-method D ' Close)
(vlax-release-object   D)
(vlax-release-object   W)
)
(reverse lst1)
)
(bb-fantitostr '("下面" "大学" "朋友"  "老师")0)
还有很多...

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-3-20 17:13:43 | 显示全部楼层
LPACMQ 发表于 2020-3-20 12:08
能否提供一个打开目录定位文件的方法,谢谢。

你的表达有歧义,是下面这个意思吗
;;;;;;****************************打开当前图档所在的文件夹
(defun c:HT_904 ()
  (princ "打开当前图档所在的文件夹")
  (if (= (getvar "DWGTITLED") 0)
    (alert "请先保存文件")
    (startapp (strcat "explorer /select, "
                      (getvar "dwgprefix")
                      (getvar "dwgname")
                      ", /e"
              )
    )
  )
  (princ)
)

点评

对就是这效果,定位指针,多选大师。  发表于 2020-3-20 18:43
 楼主| 发表于 2020-3-22 12:23:41 | 显示全部楼层
sunny_8848 发表于 2020-3-21 11:07
方法真的多,多谢分享

还有方法的
发表于 2020-3-22 13:47:12 | 显示全部楼层

共享出来,大家学习
发表于 2020-3-20 09:13:05 | 显示全部楼层
高手,真正的高手!
发表于 2020-3-20 09:31:23 | 显示全部楼层
研究的如此之多
发表于 2020-3-20 10:33:48 | 显示全部楼层
一看这些方法,都是要对系统了解的才能写出来,光学lisp很局限
发表于 2020-3-20 12:08:45 | 显示全部楼层
能否提供一个打开目录定位文件的方法,谢谢。
发表于 2020-3-21 08:41:24 | 显示全部楼层
哪里登陆
保持
发表于 2020-3-21 11:07:28 | 显示全部楼层
方法真的多,多谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-9 18:05 , Processed in 0.208921 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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