从我的应用程序我想用网络驱动器的默认Windows程序打开文件(jpg,pdf,..)。我知道start
,但它似乎不适用于网络路径。
我尝试了以下命令,但我得到的只是Windows对话框告诉我他不知道如何打开该文件以及我是否想要使用Web服务来请求程序或手动选择。 / p>
来自cmd.exe(P:\是网络驱动器):
cmd / c“start \ server \ path \ to \ image.jpg”
> cmd /c "start P:\path\to\image.jpg"
文件的路径是正确的,在资源管理器中单击它可以正常工作。
由于
更新:我发现了问题。请参阅下面的答案。
答案 0 :(得分:2)
我尝试了这两个命令:
两个命令都完美无缺。我没有收到任何错误消息。 如果要启动它们,可以使用它们。
SHELLEXECUTEINFO ExecuteInfo;
memset(&ExecuteInfo, 0, sizeof(ExecuteInfo));
ExecuteInfo.cbSize = sizeof(ExecuteInfo);
ExecuteInfo.fMask = 0;
ExecuteInfo.hwnd = 0;
ExecuteInfo.lpVerb = "open"; // Operation to perform
ExecuteInfo.lpFile = "cmd.exe"; // Application name
ExecuteInfo.lpParameters = "start P:\Myfile.jpg"; // Additional parameters
ExecuteInfo.lpDirectory = 0; // Default directory
ExecuteInfo.nShow = SW_SHOW;
ExecuteInfo.hInstApp = 0;
if(ShellExecuteEx(&ExecuteInfo) == FALSE)
或者您可以浏览此链接:http://www.codeguru.com/forum/showthread.php?t=302501
答案 1 :(得分:2)
我认为你需要的功能是ShellExecute - 它看起来像这样:
ShellExecute(ParentWindowHandl, "open", "Z:\SQLWriter.doc", NULL, SW_SHOWNORMAL);
P.S。我知道我应该将此作为评论发布,但不能对所有帖子发表评论。
答案 2 :(得分:1)
好的,我发现了问题。好像windows注册表有点困惑。 如前所述,其他文件如文本和文档都有效,因此唯一的问题是JPEG文件。
Double在Windows资源管理器中单击它们可以正常使用它们,但是使用start
命令向我显示了上述弹出窗口。在这里选择一个程序并将其标记为永久性解决了我的问题。使用start
进一步调用现在可以直接正确打开图像。