Delphi 如何执行具有不同扩展名的文件';关联的应用程序?

Delphi 如何执行具有不同扩展名的文件';关联的应用程序?,delphi,winapi,shellexecute,file-association,Delphi,Winapi,Shellexecute,File Association,在我的应用程序中,我希望能够使用与不同扩展名关联的程序执行具有任意名称和扩展名的文件 例如,假设我有一个名为file.dat的文件,但我想用记事本打开它,就像它名为file.txt或file.dat.txt一样。另外,我没有重命名文件的权限,所以这是不可能的 如果文件名为file.txt,我可以调用。但是当调用file.dat时失败;Windows抱怨该文件没有关联 我不想硬编码特定的可执行文件,因为(在上面的示例中)最终用户可以将.txt文件与写字板而不是记事本相关联。在这种情况下,我希望使用

在我的应用程序中,我希望能够使用与不同扩展名关联的程序执行具有任意名称和扩展名的文件

例如,假设我有一个名为
file.dat
的文件,但我想用记事本打开它,就像它名为
file.txt
file.dat.txt
一样。另外,我没有重命名文件的权限,所以这是不可能的

如果文件名为
file.txt
,我可以调用。但是当调用
file.dat
时失败;Windows抱怨该文件没有关联

我不想硬编码特定的可执行文件,因为(在上面的示例中)最终用户可以将
.txt
文件与写字板而不是记事本相关联。在这种情况下,我希望使用写字板打开我的
文件.dat

调用并指定结构的
lpClass
成员。请注意,您必须在
fMask
成员中包含
请参见\u MASK\u CLASSNAME

例如,将
lpClass
设置为
'.txt'
,请求使用与
.txt
扩展名关联的程序打开文件