Я хочу программно управлять состоянием окна проводника (используя Matlab). В частности, я хотел бы изменить состояние окна (свернуть, развернуть, вывести на передний план), изменить папку, которая просматривается в данный момент, и, возможно, предварительно выбрать файл.
Я знаю, что могу открыть Проводник с помощью вызовов system
, но я не хочу каждый раз открывать новое окно. Мне также известно об ограниченном контроле, который DDE предлагает. Но DDE ужасно устарел, еще хуже документирован, а Matlab лучше поддерживает интерфейсы COM и .NET, чем DDE.
Предоставляет ли File Explorer интерфейсы COM или .NET? Если да, то где я могу узнать о них? Особенно очень помогло бы знание PROGID File Explorer.
Я искал в Интернете, но COM и .NET не так легко найти - даже в поиске Windows Developer (лучшие результаты - это все домены, заканчивающиеся на .com и .net ...)
Обновление:
Благодаря информации, предоставленной до сих пор, я смог запустить новое окно проводника, используя
h_s = actxserver('shell.application');
h_s.Explore('c:\Users')
Но я не понимаю, как это позволит мне манипулировать окном Проводника. Насколько я понимаю из документации, объект shell.application позволяет мне взаимодействовать с оболочкой, а не с File Explorer. Я не нашел метода, позволяющего изменить выбранный файл. Кроме того, каждый раз, когда я звоню h.Explore()
, открывается новое окно.
В качестве альтернативы, ковыряясь в реестре (я искал ключи в HKEY_CLASSES_ROOT, у которых есть «подключи» с именем CLSID), я нашел progID Internet Explorer, но переход к URI файла не работает. Вместо этого в окнах открывается окно Internet Explorer и новое окно File Explorer, в котором отображается неправильное местоположение.
h_e = actxserver('InternetExplorer.Application')
h_e.Navigate('file:///C:/Users')