我需要在我的C ++项目中打开PDF和DOC文件,这是我唯一的限制,我无法使用ShellExecute和WinExeute打开扩展文件。
现在,我尝试使用WMI查询和OpenProcess()打开文件,但这两个过程都需要Handler应用程序路径以及DOC / PDF文件的路径。
我无法给出默认的处理程序应用程序路径,有没有办法直接打开文件而不指定处理程序应用程序路径?
答案 0 :(得分:1)
您可以解决与您需要打开的文件关联的应用程序。起点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);