1291500406 发表于 2020-3-19 19:41:58

ActiveX

本帖最后由 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:/")
外部软件微软公司提供了两个应用explorerrundll32 ~
方法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方法最多 数不清 以下是部分举例
方法5ToggleDesktop
(vlax-invoke(vlax-create-object"{13709620-c279-11ce-a49e-444553540000}")"ToggleDesktop" )

方法6open
(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:\\")

方法7run
(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:/")
方法8ControlPanelItem
(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"nil8 -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 Dlst1 )
(vl-load-com)
(setq lst1 nil)
(foreachstrlst
(setq    W(vlax-create-object"{000209FF-0000-0000-C000-000000000046}"))
(setqD(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-methodD'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)
)

1291500406 发表于 2020-3-22 12:23:41

sunny_8848 发表于 2020-3-21 11:07
方法真的多,多谢分享

还有方法的

sunny_8848 发表于 2020-3-22 13:47:12

1291500406 发表于 2020-3-22 12:23
还有方法的

共享出来,大家学习

shh1980 发表于 2020-3-20 09:13:05

高手,真正的高手!

jun353835273 发表于 2020-3-20 09:31:23

研究的如此之多

taoyi0727 发表于 2020-3-20 10:33:48

一看这些方法,都是要对系统了解的才能写出来,光学lisp很局限

LPACMQ 发表于 2020-3-20 12:08:45

能否提供一个打开目录定位文件的方法,谢谢。

yptk 发表于 2020-3-21 08:41:24

哪里登陆
保持

sunny_8848 发表于 2020-3-21 11:07:28

方法真的多,多谢分享
页: [1] 2
查看完整版本: ActiveX