我正在使用以下行在matlab中打开Windows资源管理器中的文件夹:
system('explorer.exe /select,./my_folder/my_file.tif');
即使Matlab“当前文件夹”与“./”的相对路径也很好。请注意,它还会选择指定的文件,这就是我想要的。
但是,我想仅在相同的路径尚未打开时才打开此窗口。现在,我得到了同一个窗口的几个副本,这很烦人。你知道怎么办?
谢谢,
Ghislain的
(Windows 8,Matlab R2011b 64bits)
答案 0 :(得分:1)
<强>声明强>
这是部分答案。我不知道怎么从这里开始,但也许它有帮助。您的问题对我来说非常有趣,如果接口之间的更改(Matlab / Explorer)更容易,它会使数据分析变得更容易!
一些历史记录
DDE是一项古老的技术(16位Windows,是的!),它使Windows应用程序能够相互通信。 DDE已经从Windows XP中删除了,但它只是拒绝死亡。
DDE长寿的一个原因是Windows资源管理器仍然使用DDE。例如,当您双击某个文件时,Explorer会向Excel发送一个DDE命令,告诉它在当前的Excel窗口中打开该文件。
DDE如何为您提供帮助
Matlab的DDE支持已被正式弃用。也许它会完全消失,如果不是因为资源管理器通过DDE消息与Matlab交谈的事实!
您可以通过向应用程序“文件夹”发起有关“appproperties”主题的DDE频道来反转此过程:
channel = ddeinit('folders', 'appproperties')
“文件夹”应用程序似乎是“progman”的同义词,这是一款优秀的Windows 3程序管理器。您可以通过执行
告诉Explorer(“文件夹”)查看文件夹ddeexec(channel, '[ViewFolder("%l", c:\windows, 5)]')
如果资源管理器已指向该文件夹,则不会打开新窗口。不幸的是,我无法告诉你更多关于这个命令的信息。我不知道%l在那里做了什么,或者5那个问题。我唯一知道的是ViewFolder可以被ExploreFolder取代,在这种情况下你总是打开一个新窗口,该窗口总是在左窗格中显示文件夹树结构。
更多信息
最重要的DDE相关功能是ddeinit,ddeexec和ddeterm。他们的文档被隐藏在这些函数的.m文件中。您只需执行
即可查看.m文件edit ddeinit
Yair Altman在Matlab的DDE功能上some more info。资源管理器有什么DDE命令可以避开我。我从我发现的here中收集了我的例子。