Я уже и правда стал верить в то, что это нельзя сделать, но интуиция меня не подвела, держите
| Код | ShellExecute(Handle, nil, 'explorer.exe', '/e, Пупь к папке, /select, Имя файла', Путь к папке ОБЯЗАТЕЛЬНО, SW_RESTORE) |
EXPLORER.EXE [/n] [/e] [,/ROOT,OBJECT] [[,/SELECT],SUBOBJECT]
Если EXPLORER.EXE вызывается без последующих параметров или с ключом /e, утилита Windows Explorer запускается точно так, как при ее вызове из Меню запуска. Если в строке имеются другие параметры, а ключ /e не используется, то на вашем "рабочем столе" открывается указанная папка. Когда нужная вам папка уже открыта, EXPLORER.EXE не станет открывать второй экземпляр - если только не установлен ключ /n. Ключ /ROOT задает верхний уровень отображения папок на дереве утилиты Explorer. По умолчанию ROOT соответствует папке Desktop (т. е. всему "рабочему столу"), куда включены все файлы вашей машины (папка My Computer - "Мой компьютер") и вашей сети (папка Network Neighborhood - "Соседи по сети"). Чтобы изменить установку по умолчанию, необходимо к подстроке /ROOT добавить параметр OBJECT, который является именем конкретной папки (становящейся корнем). Включение параметра SUBOBJECT заставит Explorer открыться на соответствующей вложенной папке, расположенной ниже уровня ROOT; если SUBOBJECT не задан, то начальной (верхней) папкой останется ROOT. Ключ /SELECT позволяет в качестве SUBOBJECT вместо папки использовать файл, но без возможности применять символы-заменители (* и ?).
Имена файлов в командной строке утилиты Explorer могут быть полными UNC-именами (Universal Naming Convention - универсальное соглашение по именованию файлов), т. е. содержащими полный путь, что обеспечивает доступ к сетевым ресурсам, расположенным вне локальных дисков. |