打开图像时,WScript.Shell Run给出“没有应用程序与此操作的指定文件关联。”。

问题描述 投票:6回答:1

尝试使用WScript.Shell从Windows 10中的Silverlight应用程序打开图像文件时,我遇到了一个问题。

代码如下。

        try
        {
            dynamic shell = AutomationFactory.CreateObject("WScript.Shell");
            shell.Run(@"C:\temp\X.jpg");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.StackTrace);
        }

当默认应用程序在Windows 10“默认应用程序”设置中设置为“照片”/“Internet Explorer”时,这段代码可以正常工作。

但是,当默认应用程序设置为“画图”时,我得到一个异常“没有应用程序与此操作的指定文件关联。(HRESULT异常:0x80070483)”

请注意,当我尝试在Windows资源管理器中双击同一图像时,它会在Paint应用程序中打开而不会出现错误。

为什么会这样?请帮忙。

silverlight-5.0 wsh
1个回答
0
投票

问题

  • Windows脚本主机未运行已知文件类型的所需应用程序

  • 明确指定所需的应用程序并使用WScript.Shell对象运行

  • 在下面的示例中,我们引用了我们想要使用strRunLine运行的程序和文件 <?xml version="1.0"?> <package> <job id="default"> <script language="jscript"> <![CDATA[ // save to demo_runpaint.wsf var WshShell = new ActiveXObject("Wscript.Shell"); var strRunLine = ""; strRunLine = "mspaint.exe C:/path/to/capture.png"; WshShell.Run( strRunLine ); ]]> </script> </job> </package>

陷阱

  • 所需的程序必须在您的系统PATH中,否则您必须明确指定应用程序的完整路径。
© www.soinside.com 2019 - 2024. All rights reserved.