调用vbs不重复打开当前文档目录(文件夹)
本帖最后由 669423907 于 2018-12-5 19:42 编辑(defun c:13()
(ntb (getvar "dwgprefix")) ;获取当前文档所在目录并写入粘帖板
(vlax-invoke (vlax-create-object "wscript.shell")'run "打开文件夹.vbs") ;运行vbs
(princ))
;向剪粘帖板中写入文字
(defun ntb(STR / HTML RESULT)
(and (= (type STR) 'STR)
(setq HTML (vlax-create-object "htmlfile"))
(setq RESULT(vlax-invoke(vlax-get(vlax-get HTML 'PARENTWINDOW)'CLIPBOARDDATA)'SETDATA"Text"STR))
(vlax-release-object HTML))
(princ))
把“打开文件夹.vbs”放在搜索目录内即可
程序运行时,就会自动调用vbs打开当前文档目录,并且不会重复打开
随便请教一个如何用lsp创建vbs的问题:
如何在CAD的安装目录创建一个名为“打开文件夹.vbs”的vbs文件,
并在这个vbs里写下以下内容
'获取系统粘帖板内容http://www.ixueyi.com/jingyan/1895549.html
Set objHTML=CreateObject("xmlfile") 'xmlfile、mhtmlfile都可以
xmlfile=objHTML.ParentWindow.ClipboardData.GetData("text")
CreateObject("Wscript.Shell").Run xmlfile '打开文件夹
Wscript.Sleep 500 '等待
Wscript.CreateObject("Wscript.Shell").SendKeys "{F5}" '刷新
CreateObject("Wscript.Shell").Run "C:\Windows\system32\cmd.exe /c echo off|clip",0 '清空粘帖板,off为空,可以把off换成其它内容
CreateObject("Scripting.Filesystemobject").DeleteFile(WScript.ScriptFullName)'vbs删除自己
一句话,试试:
(command "BROWSER" (getvar "DWGPREFIX" ))
669423907 发表于 2018-12-8 16:51
首先非常感谢你的回复,代码很好用。
其实我还是非常想要生成vbs的方法,因为vbs可以做一些lsp不那么方 ...
vbs代码如下,自己用lisp写个临时文件就可以实现。后面的操作so easy了
'打开文件夹
dim winshell
dim path
path = "c:\"
Setwinshell = CreateObject("Wscript.Shell")
Msgbox "延迟500毫秒"
winshell.Run path
WScript.Sleep 500 '等待
winshell.AppActivate path
WScript.Sleep 1000
winshell.SendKeys "%{F4}"
Msgbox "ok"
;;==============打开当前图形文件所在位置============
(defun C:Openthefile ()
(princ "\n-->打开当前图形文件所在的文件夹!" )
(setq winshell (vlax-create-object "Shell.Application" ))
(setq filepath (getvar "DWGPREFIX" ))
(vlax-invoke-method WinShell 'Open filepath)
);end defun
(princ) 自顶一下,哪位大师方便出手一下咯 nyistjz 发表于 2018-12-7 14:11
;;==============打开当前图形文件所在位置============
(defun C:Openthefile ()
(princ "\n--> ...
首先非常感谢你的回复,代码很好用。
其实我还是非常想要生成vbs的方法,因为vbs可以做一些lsp不那么方便做的事情,
比方说可以延时执行且不会影响cad的操作,lsp的延时,就必须停下来等。
例子:
我lsp执行vbs,vbs打开文件夹A,1分钟后自动关闭文件夹A 本帖最后由 jun353835273 于 2018-12-11 09:16 编辑
'打开文件夹
dim winshell
dim path
path = "c:\"
Setwinshell = CreateObject("Wscript.Shell")
Msgbox "延迟500毫秒"
winshell.Run path
WScript.Sleep 500 '等待
winshell.AppActivate path
WScript.Sleep 1000
winshell.SendKeys "%{F4}"
Msgbox "ok" 这么搞也太麻烦了吧,有啥好处吗 本帖最后由 masterlong 于 2018-12-13 11:47 编辑
楼主的方法确实可以不重复打开文件夹
很好
但是我这里打开文件夹以后
会连续弹出两次以下窗口
在网上搜了下vbs想自行解决
没能成功
怎么破?
系统64win7
jun353835273 发表于 2018-12-11 09:17
vbs代码如下,自己用lisp写个临时文件就可以实现。后面的操作so easy了
'打开文件夹
dim winshell
首先非常感谢你的热心回复。
vbs的代码我已经有了,我就是想用lsp创建一个vbs,并把(vbs)需要的代码写进vbs里
页:
[1]
2