4

新しいプロセスを開始するためのSystem.Diagnostics.Processが見つかりません。これはわざとだと思います。しかし、他の方法はありますか?これも可能ですか?

4

2 に答える 2

4

このリファレンスは Windows 8 Metro アプリケーションで使用できます: How to Start a external Program from Metro App . すべての Metro スタイル アプリケーションは高度にサンドボックス化された環境で動作し、外部アプリケーションを直接起動する方法はありません。

Launcher クラスを使用してみることができます

  1. Launcher.LaunchFileAsync

    // Path to the file in the app package to launch
    string exeFile = @"C:\Program Files (x86)\App.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 launching failed
        }
    }
    
  2. Launcher.LaunchUriAsync

参照: Windows.System.Launcher.LauncherDefaultProgram(Uri) を使用して別の Metro スタイル アプリを呼び出すことはできますか?

于 2012-11-26T11:16:43.563 に答える
0

メトロ以外のプロセスを開くことはできないようです。*.txt のような URL やファイルを開くことはできますが、*.cmd や *.exe を開くことはできません。

カスタムファイルの関連付けがある場合は、カスタムファイル名拡張子を持つ空のファイルを開いてプロセスを開始する可能性があります (私はこれを試していません)。ただし、レジストリを編集してアプリから関連付けを追加することはできません。
したがって、これを行うアプリのみの方法はありません(まだ発見されていないハックを除いて;))。

于 2012-11-26T12:49:00.963 に答える