How to launch a full-trust (desktop bridge) app from UWP with arbitrary parameters

三世轮回 提交于 2019-11-28 11:32:46

No this is not possible today.

One quick way to accomplish the scenario is to have the UWP write the command string to the local app data/settings, which is shared between the two processes. So the full-trust process can then pick up the command string after its been launched from there.

A more complex solution is to establish an app service connection between the two processes, and pass the command string via that connection. This will be helpful if you need to keep communicating back and forth between the two processes.

If for some reason you can't change your existing full-trust process code, you could add an extra EXE to your package that just reads the command string from the app data and then launches your actual full-trust EXE with those parameters (using Process.Start() or something equivalent).

EDIT I have posted some more details and an example on my blog: https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-2/

We cannot pass argument dynamically to the full trust process. However, we can pass it using LocalSettings.

  1. Add the arguments to Local Settings and launch the full trust process: In C++:

    auto settings = Windows::Storage::ApplicationData::Current->LocalSettings; settings->Values->Insert("arg1", "val1"); settings->Values->Insert("arg2", "val2"); // Launch Full trust proc create_task(FullTrustProcessLauncher::LaunchFullTrustProcessForCurrentAppAsync()).then([](task<void> t) {/* ... */});

  2. In the full trust process code,

    auto settings = Windows::Storage::ApplicationData::Current->LocalSettings; auto val1 = settings->Values->Lookup("arg1")->ToString();

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!