有没有一种简单的方法可以通过 Windows 中的关联程序打开文件? (就像在 Windows 资源管理器中双击它,但使用我的代码自动完成)
例如,在计算机 A 上,“text.txt”将在写字板中打开,但在计算机 B 上,由于用户文件扩展名分配,它将由 Notepad++ 打开。
我试过 ShellExecute
ShellExecute(0, L"open", L"c:\\windows\\notepad.exe" ,L"c:\\outfile.txt" , 0 , SW_SHOW );
这可行,但如果我省略 notepad.exe 参数,就会发生奇怪的事情(显示随机浏览器)。
原文由 Valmond 发布,翻译遵循 CC BY-SA 4.0 许可协议
您想使用文件作为文件参数打开,而不是参数参数。无需指定使用哪个程序,
ShellExecute
会为您查找。通过将动词保留为 NULL (0) 而不是
L"open"
,您可以获得文件类型的真正默认操作 - 通常这是open
但并非总是如此。