通过AutoLISP关闭文件夹
各位成员好,我在这里找到了Lee Mac的代码,用AutoLISP打开了一个文件夹。
代码如下:
(defun MT-Explore (Directory / Shell result)
(setq Shell (vla-getInterfaceObject (vlax-get-acad-object)
"Shell.Application"
)
)
(setq result
(vl-catch-all-apply 'vlax-invoke (list Shell 'Explore Directory))
)
(vlax-release-object Shell)
(not (vl-catch-all-error-p result))
)
有人知道如何关闭打开的文件夹吗? 我唯一想到的是终止脚本,但如果终止错误的进程,这种方法是危险的,所以要小心。
(defun LM:Terminate ( process / wmi server query name )
(vl-catch-all-apply
(function
(lambda ( / name )
(setq process (strcase process)
wmi (vlax-create-object "WbemScripting.SWbemLocator")
server(vlax-invoke wmi 'connectserver nil nil nil nil nil nil nil nil)
query (vlax-invoke server 'execquery "Select * from Win32_Process")
)
(vlax-for item query
(if
(and
(setq name (vlax-get item 'commandline))
(vl-string-search process (strcase name))
)
(vlax-invoke item 'terminate)
)
)
)
)
)
(foreach object (list wmi server query)
(if (and object (not (vlax-object-released-p object)))
(vlax-release-object object)
)
)
)
用进程名称调用以终止,例如:
(LM:Terminate "Excel.exe") 但是,这是如何工作的,即据我所知,文件夹没有自己的进程,而是在资源管理器下。exe进程。终止该操作将关闭任务栏和所有其他文件夹功能,而不仅仅是一个文件夹。 说得好,丁克——那么我对这件事没有什么想法了 单击窗口右上角的小“X”或键入ALT+F4或CTRL+W有多难?
没错,但我确信同样的论点可以应用到我们编写代码的许多任务中——我相信你会同意,看看是否可以通过编程实现某些事情通常很有趣。
然而,在这种情况下,我怀疑会找到一种编程方法。
李 有点同意。
在这种情况下,我不明白这怎么可能。即使可以隔离活动的windows资源管理器窗口,如果打开了多个窗口,您将如何隔离特定的窗口。
页:
[1]