如何使用默认程序从网络驱动器/路径打开文件?

时间:2011-06-24 09:20:03

标签: windows windows-7 windows-xp cmd

从我的应用程序我想用网络驱动器的默认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"

文件的路径是正确的,在资源管理器中单击它可以正常工作。

由于

更新:我发现了问题。请参阅下面的答案。

3 个答案:

答案 0 :(得分:2)

我尝试了这两个命令:

  1. 启动Z:\ SQLWriter.doc
  2. start \ 192.168.10.230 \ MyFolder \ SQLWriter.doc
  3. 两个命令都完美无缺。我没有收到任何错误消息。 如果要启动它们,可以使用它们。

     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进一步调用现在可以直接正确打开图像。