我继承了UWP的应用程序,并要求添加一个按钮来启动第三方应用程序。 第三方应用程序是建立与Qt和有一个exe作为启动充当服务的第二EXE主程序。 该UWP应用程序要运行Windows 10平板电脑上运行。
我创建了添加注册表值的URI的第三方应用程序,所以我可以做URI激活(LaunchUriAsync法)的安装程序。 如果我更改URI的目标不同的应用程序能正常工作,所以我知道的URI的设置是否正确。
当我按下按钮的第三方应用程序无法打开。 我曾经将procmon看看发生了什么事,并证实它开始开放,但随后推出的第二个exe文件之前停止。 没有数据被写入到事件日志中,因为这将是太大的帮助。
我还没有发现这方面有任何文档,但我必须假设从UWP应用程序启动的应用程序也被沙箱。 有谁知道这是否正确? 我不知道该怎么做比重建应用为WPF或其他东西,这是不是非常有吸引力。
回答你的问题是:不,他们没有被运行的沙盒。
启动在fulltrust从通过协议UWP运行的应用程序是支持的方案(例如,这就是如何撰写电子邮件的工作原理如果Outlook是默认的mailto:供应商)。
我怀疑是东西在你的协议注册,或你如何调用它丢失,但没有足够详细的问题来解决此。
我能够做的UWP推出一个新的控制台应用程序来启动我的第三方应用程序,然后开始了一个新的进程。
控制台应用程序就是这样的:
var proc = new Process();
proc.StartInfo.FileName = filePath;
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(filePath);
proc.Start();
proc.WaitForExit();
var exitCode = proc.ExitCode;
proc.Close();
该“WorkingDirectory”是必需的,从UWP我不明白的方式来设置。