ParameterGroup
。我需要以编程方式确定(在启动时)任意命令行参数来启动UWP。这是否可能,如果是,如何实现?ParameterGroup
。我需要以编程方式确定(在启动时)任意命令行参数来启动UWP。这是否可能,如果是,如何实现?今天不可能做到这一点。
实现该场景的一种快速方法是让UWP将命令字符串写入本地应用数据/设置中,该数据在两个进程之间共享。因此,完全信任的进程可以在启动后从那里获取命令字符串。
更复杂的解决方案是在两个进程之间建立应用程序服务连接,并通过该连接传递命令字符串。如果需要在两个进程之间保持双向通信,则此方法会很有帮助。
如果由于某些原因您无法更改现有的完全信任进程代码,则可以向包中添加额外的EXE,该EXE仅从应用数据中读取命令字符串,然后使用这些参数(使用Process.Start()或等效方法)启动实际的完全信任EXE。
编辑 我在我的博客上发布了更多详细信息和示例: https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-2/
我们无法将参数动态传递给完全信任的进程。但是,我们可以使用LocalSettings进行传递。
将参数添加到本地设置并启动完全信任的进程: 在 C++ 中:
auto settings = Windows::Storage::ApplicationData::Current->LocalSettings;
settings->Values->Insert("arg1", "val1");
settings->Values->Insert("arg2", "val2");
// 启动完全信任的进程
create_task(FullTrustProcessLauncher::LaunchFullTrustProcessForCurrentAppAsync()).then([](task<void> t) {/* ... */});
在完全信任的进程代码中,
auto settings = Windows::Storage::ApplicationData::Current->LocalSettings;
auto val1 = settings->Values->Lookup("arg1")->ToString();
@ispiro
,否则我不会收到通知。但是我已经检查过了,所以我看到了您的回复。)再次感谢。 - ispiro