打开文件就好像它是一个文本文件(即使它的扩展名不是.txt)

Ana*_*tts 4 windows shell

我试图打开与"TXT"文件关联的编辑器-这里有个致命的,虽然,我的文件实际上不具备txt扩展,所以我不能随便ShellExecute吧,我一定要找到手动关联的程序.

为此,我一直在尝试使用IApplicationAssociationRegistration::QueryCurrentDefaultShell 的COM方法,但是它返回一个ProgId,这对我来说是无用的.如何将其映射到EXE?我正在使用C#,但似乎并不相关.

编辑:下面链接的方法,您直接访问注册表不再适用于所有情况.正确的方法是上面的,但我需要下一步 - 如何获取返回的ProgId并获取相关的程序?

Ray*_*hen 7

要执行一个文件,就像它是另一种类型的文件一样,调用ShellExecute并将结构的lpClass成员设置为SHELLEXECUTEINFO您希望文件所在的progid.

以这种方式执行它很重要,因为文本文件的默认处理程序不一定是带有命令行的程序.它可能是DDE服务器放置目标上下文菜单处理程序委派的执行处理程序.