如何使用C ++调用ShellExecute打开包含特定程序的文件,而不关联相同的文件扩展名

时间:2017-11-10 03:36:13

标签: c++ winapi shellexecute

我阅读了MSDN并尝试了这行代码

  

ShellExecute(handle,“open”,“fully_qualified_pa​​th_to_file”,NULL,NULL,SW_SHOWNORMAL);

它工作正常,但我需要更多功能。我写了一个应用程序,它使用扩展名为.bin的文件输出。在我的操作系统上,.bin文件与任何特定程序无关。 MSDN说我可以通过编程将所有.bin文件与我的应用程序相关联,但这种情况对我来说是不可接受的。

如何添加此行代码以使用特定程序打开特定文件? 附:我试图将我的应用程序路径放在第四个参数中,如MSDN中所示,像那样的史密斯,

  

C:\\ Application.exe“”%1“

但它不起作用。

1 个答案:

答案 0 :(得分:1)

如果lpFile参数不是.exe,那么Windows只能在注册表中注册文件类型时才能执行该文件(ShellExecute将从注册表中读取命令行并替换%1用文件名)。

如果要强制使用特定应用程序,则lpFile需要指定所述应用程序的名称/路径,并且您希望它打开的文件必须是应用程序支持的格式的参数的一部分,通常只是文件的完整路径(如果路径包含空格,则引用")。在这种情况下,ShellExecute不会为您翻译%1。

相关问题