我需要在我的 C++ 项目中打开 PDF 和 DOC 文件,唯一的限制是我不能使用 ShellExecute 和 WinExeute 打开扩展文件。
现在,我尝试使用 WMI 查询和 OpenProcess() 打开文件,但这两个过程都需要处理程序应用程序路径以及 DOC/PDF 文件的路径。
我无法给出默认的处理程序应用程序路径,有什么方法可以直接打开文件而无需指定处理程序应用程序路径?
最佳答案
您可以确定哪个应用程序与您需要打开的文件相关联。起点here和 here .这可能会很棘手,因为您可能需要考虑各种细节,但这正是 ShellExecute
所做的。
如果您知道要使用哪个应用程序,请在已知应用程序(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
)中搜索它。只有当您知道正在处理的文件类型以及要使用的应用程序时,这才有用。
一个更简单的方法可能是执行 cmd.exe
,您不会调用 ShellExecute
,它会为您完成工作(执行默认动词):
cmd /c MyFile.txt
在代码中(只是一个例子...):
CreateProcess("cmd.exe",
"/c c:\\MyFile.txt",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&startupInfo,
&processInformation);
关于c++ - 打开 .doc 文件而不提供其处理程序应用程序 C++ 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20070687/