我正在尝试开发一个应用程序,它使用启动器类从metro应用程序启动常规.exe应用程序。 MSDN提供了样本here,stackoverflow样本为here
问题是,即使文件存在,我的地铁也会出现“找不到文件”的错误。我试图将文件放在其他驱动器上,但问题仍然存在
这是我的代码示例
// 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);
/ *错误在上面的行.it表示找不到文件文件名,目录名或卷标语法不正确。 (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
}
答案 0 :(得分:3)
LaunchFileAsync用于在其默认程序中启动文件。
http://msdn.microsoft.com/library/windows/apps/Hh701461
我不相信它会与.exe一起使用
正确用法如下:
LaunchFileAsync("images\\picturesofcats.png");
然后在默认图像查看器中打开猫的图片。
由于沙盒,这对.exe不起作用,因为.exe没有默认的开启工具。
有一些技巧可以解决这个问题,请参阅:Launching a Desktop Application with a Metro-style app
通常,您正在反对Windows 8的设计,因此您可能需要重新考虑您的方法。