Delphi 在Windows资源管理器中选择文件并不总是有效的

Delphi 在Windows资源管理器中选择文件并不总是有效的,delphi,windows-explorer,shellexecute,Delphi,Windows Explorer,Shellexecute,使用以下命令 explorer.exe /select, "c:\path\to\file.txt" 我可以打开Windows资源管理器并选择该文件。在Delphi中,我这样做是为了选择“Parm”文件: 它是有效的。我的问题是:如果我在最近打开的资源管理器中选择了一个不同的文件(单击另一个文件),然后调用上面的代码,则不会再次选择“Parm”文件。有趣的是,有些程序会再次选择文件。例如,ITunes总是选择所需的文件 有人知道如何让Explorer始终选择指定的文件吗?这是使用/select

使用以下命令

explorer.exe /select, "c:\path\to\file.txt"
我可以打开Windows资源管理器并选择该文件。在Delphi中,我这样做是为了选择“Parm”文件:

它是有效的。我的问题是:如果我在最近打开的资源管理器中选择了一个不同的文件(单击另一个文件),然后调用上面的代码,则不会再次选择“Parm”文件。有趣的是,有些程序会再次选择文件。例如,ITunes总是选择所需的文件


有人知道如何让Explorer始终选择指定的文件吗?

这是使用/select开关与Explorer.exe的已知限制,它只会在父文件夹尚未打开时选择特定的文件


您必须像INSTEAD一样使用API调用。此函数还允许进行多选。

非常好,谢谢,我试图回忆一下此函数的名称,在这里可以找到ShopEnfolder和SelectItems的一个很好的示例:
ShellExecute(Application.MainForm.Handle, 'OPEN', PChar('explorer.exe'), PChar('/select,"' + Parm + '"'), nil, SW_NORMAL);