c#启动带有metro api的外部应用程序
本文关键字:外部 应用程序 api metro 启动 | 更新日期: 2023-09-27 18:14:21
我正在尝试开发一个应用程序,该应用程序使用启动器类从metro应用程序启动常规。exe应用程序。MSDN在这里提供了一个示例,而stackoverflow示例在这里
问题是,我的地铁给出错误的"文件未找到",即使文件在那里。我也尝试过将文件放在其他驱动器上,但问题仍然存在
这是我的代码示例
// Path to the file in the app package to launch
string imageFile = @"E:'App.exe";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
/*上面的错误行。它说文件没有找到文件名,目录名或卷标语法不正确。(Exception from HRESULT: 0x8007007B)*/
if (file != null)
{
// Launch the retrieved file
var success = await Windows.System.Launcher.LaunchFileAsync(file);
if (success)
{
// File launched
}
else
{
// File launch failed
}
}
else
{
// Could not find file
}
LaunchFileAsync用于在其默认程序中启动文件。
http://msdn.microsoft.com/library/windows/apps/Hh701461我不相信它会工作与。exe
正确的用法是:
LaunchFileAsync("images''picturesofcats.png");
这将在默认的图像查看器中打开一张猫的图片。
由于沙箱的原因,这对。exe不起作用,因为。exe没有默认的打开器。
有一些技巧可以解决这个问题,参见:使用metro风格的应用程序启动桌面应用程序一般来说,你这样做是在违背Windows 8的设计,所以你可能需要重新考虑你的方法。