Как открыть папку, но без ShellExecute?

Как показать папку в проводнике?

ShellExecute(0,'open','explorer.exe',PChar('"'+txtFolder+'"'),nil,SW_SHOWNORMAL);

Нет, вариант с ShellExecute не подходит.
Потому что лично я использую модификацию (QTTabBar), которая добавляет вкладки для встроенного проводника Windows. И вместо того, чтобы открыть новую вкладку в уже открытом окне, запуск "explorer.exe", ожидаемо, открывает новое окно с новой вкладкой в нём.

Однако я знаю, что это возможно, потому что так можно сделать в python:

import os
os.startfile(txtFolder)
#subprocess.Popen(f'explorer "{txtFolder}"') #Аналог ShellExecute.

Этот код вместо открытия нового окна, открывает новую вкладку в текущем окне проводника. То, что и нужно.

Как сделать то же самое на Delphi? Какой есть аналог os.startfile для Delphi?


Ответы (1 шт):

Автор решения: sausagerus

Ничего не приходит в голову, кроме, как открыть через TFileOpenDialog:

procedure TForm1.OpenDialog(aPath: String);
begin
  with TFileOpenDialog.Create(nil) do
  try
    DefaultFolder := aPath;
    Options := [fdoPickFolders ];
    if Execute then
      ShowMessage(FileName);
  finally
    Free;
  end;
end;

И соотвеетсвенно вызов:

OpenDialog('C:\Windows\System32\');
→ Ссылка