Explorer でフォルダを開いてファイルを選択(既に開かれている場合は再利用) - Delphi

Windows Explorer でフォルダを開いてファイルを選択、これは通常の explorer.exe /select, オプションで実現可能ですが、既にフォルダが開かれている場合、そっちを再利用したい

参考文献

uses 節に FileCtrl, ShlObj, ActiveX が無ければ追加
function OpenFolderAndSelectFile(FileName: string): boolean;
var
    DidInitCOM: boolean;
    IIDL: PItemIDList;
begin
    Result := False;
    DidInitCOM := False;
    try
        IIDL := ILCreateFromPath(PChar(FileName));
        if (IIDL <> nil) then
            try
                Result := (SHOpenFolderAndSelectItems(IIDL, 0, Nil, 0) = S_OK);
            finally
                ILFree(IIDL);
            end;
    finally
        if DidInitCOM then
            CoUninitialize;
    end;
end;

コメント