如何在Windows应用商店应用中运行命令?

时间:2014-06-25 07:35:24

标签: windows-store-apps windows-8.1

我需要从Windows应用商店运行命令吗?

命令是这样的:java -jar abc.jar

我该怎么做?

编辑:

我试过这个,但没有运气。它说找不到文件。

       string exeFile = @"C:\DATA\start.bat";

        var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(exeFile);

        if (file != null)
        {
            // Set the option to show the picker
            var options = new Windows.System.LauncherOptions();
            options.DisplayApplicationPicker = true;

            // Launch the retrieved file
            bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
            if (success)
            {
                // File launched
            }
            else
            {
                // File launch failed
            }
        }

1 个答案:

答案 0 :(得分:1)

应用容器会阻止商店应用的此行为。

首先,您尝试通过包InstalledLocation文件夹获取StorageFile,这不起作用。 InstalledLocation是一个StorageFolder,其GetFileAsync仅在该直接文件夹中查找文件。这就是它找不到返回文件的原因。

采用任意路径的API是Windows.Storage.StorageFolder.GetFileFromPathAsync。但是,您访问文件的能力受到应用程序容器的限制。您可以默认访问包文件夹或应用程序数据位置中的文件,或者如果您已在清单中声明访问权限,则可以访问各种媒体库,但是您必须通过文件选择器以便用户知道您#39;重新做并且可以同意。简单地说,这是您在c:\ data之类的位置访问文件的唯一方法。你可以使用Association launching sample的场景1和"选择和启动"来玩这个。按钮。

如果您可以获得该访问权限,那么您将能够启动文件,如果它不是被阻止的文件类型。与另一个应用程序关联的数据文件(如.docx)工作得很好,但可执行文件完全被阻止,这应该是明显的安全原因。您可以使用我上面链接的示例尝试它 - 选择.bat,.cmd,.exe,。msi等,您将看到LaunchFileAsync失败。

另请注意,另一个启动器功能LaunchUriAsync也会因为同样的原因阻止file:///。