有一种简单的方法可以通过Windows中的相关程序打开文件吗?(比如在Windows资源管理器中双击它,但使用我的代码自动完成)
例如,在计算机A上,"text.txt"将在wordpad中打开,但在计算机B上,它将由Notepad ++打开,因为用户文件扩展名分配.
我试过ShellExecute
ShellExecute(0, L"open", L"c:\\windows\\notepad.exe" ,L"c:\\outfile.txt" , 0 , SW_SHOW );
Run Code Online (Sandbox Code Playgroud)
这有效,但如果我省略notepad.exe参数奇怪的事情发生(显示随机浏览器).
Mar*_*som 25
您希望使用该文件作为文件参数打开,而不是参数参数.无需指定要使用的程序,ShellExecute将为您查找.
ShellExecute(0, 0, L"c:\\outfile.txt", 0, 0 , SW_SHOW );
Run Code Online (Sandbox Code Playgroud)
通过将动词保留为NULL(0)而不是L"open",您将获得文件类型的真正默认操作 - 通常这是open但并非总是如此.
请参阅启动应用程序:
ShellExecute(NULL, "open", L"c:\\outfile.txt", NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,一个好的内存挂钩是认为所有数据文件都可以由 shell 执行。您也可以在命令框中尝试一下,您只需在其中键入文件名,它就会被打开。或者,反过来说,Windows 中的每个文件都可以打开,可执行文件的默认打开操作是执行它们。
| 归档时间: |
|
| 查看次数: |
21827 次 |
| 最近记录: |