UWP:FullTrustProcessLauncher で起動したプログラムに引数を渡す

執筆日時:

できないのかなーと思ってたのだけど、イケるっぽい。

stackoverflow.com

こんな風に desktop:ParameterGroup をあらかじめ登録して……

<?xml version="1.0" encoding="utf-8"?>
<Package ……
    xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<Extensions>
<desktop:Extension Category="windows.fullTrustProcess"
                Executable="Yakitori.Console\Yakitori.Console.exe">
<desktop:FullTrustProcess>
<desktop:ParameterGroup GroupId="Desktop" Parameters="/d"/>
<desktop:ParameterGroup GroupId="Active" Parameters="/a"/>
</desktop:FullTrustProcess>
</desktop:Extension>
</Extensions>
</Application>
</Applications>
</Package>

それを使えばいいみたい。

private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("Desktop");
}

これをコンソールアプリで受けてみると、こんな感じになった。

namespace Yakitori.Console
{
class Program
{
static void Main(string[] args)
{
foreach (var arg in args)
{
System.Console.WriteLine(arg);
}

System.Console.ReadKey(); } } }

意味はよく分からんし、本来の使い方と違う気がするけど、これで UWP ⇔ コンソール連携できそう。

f:id:daruyanagi:20180609163221p:plain