繁体   English   中英

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

[英]How can I run a command in windows store app?

我需要从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
            }
        }

应用程序容器阻止了商店应用程序的此行为。

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

采用任意路径的API是Windows.Storage.StorageFolder.GetFileFromPathAsync。 但是,您访问文件的能力受到应用容器的限制。 默认情况下,您可以访问包文件夹或应用程序数据位置中的文件,也可以访问各种媒体库(如果已在清单中声明访问权限的话),但是否则,您必须通过文件选择器,以便用户知道您在做什么。并可以同意。 简而言之,这是在c:\\ data这样的位置访问文件的唯一方法。 您可以使用关联启动示例的方案1和“选择并启动”按钮来玩这个游戏。

如果您可以获取该访问权限,那么如果不是受阻止的文件类型,则可以启动文件。 与另一个应用程序关联的数据文件(如.docx)工作正常,但出于显而易见的安全原因,可执行文件被完全阻止。 您可以使用我上面链接的示例进行尝试-选择.bat,.cmd,.exe,.msi等,您会发现LaunchFileAsync失败。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM