Ответ 1
Если вы просто хотите запустить настольное приложение, например (блокнот, wordpad, интернет-проводник и т.д.), перейдите Методы обработки и Класс ProcessStartInfo
try
{
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "C:\Path\To\App.exe";
p.Start();
}
//Exp 2
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
В приложении Windows 8 Metro я обнаружил это: Как начать внешняя программа из приложения Metro.
Все приложения в стиле метрополитена работают в очень песочнице окружающей среды, и нет никакого способа напрямую начать внешний приложение.
Вы можете попробовать использовать Launcher class - зависит от ваших потребностей предоставить вам приемлемое решение.
Проверьте это:
Можно ли использовать Windows.System.Launcher.LauncherDefaultProgram(Uri) для вызова другого приложения стиля метро?
Ссылка: Как запустить настольное приложение из приложения Metro?
Metro IE - специальное приложение. Вы не можете вызывать исполняемый файл из приложений стиля Metro.
Попробуйте это - я еще не тестировал, но может быть, это поможет вам.
// Path to the file in the app package to launch
string exeFile = @"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe";
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
}
}