繁体   English   中英

FullTrustProcessLauncher在任务管理器中的UWP app下创建了桌面应用程序的新实例

[英]FullTrustProcessLauncher created new instances of a desktop application under UWP app in task manager

每当我们想使用扬声器录音时,我们都需要与桌面应用程序进行通信,但是每次我们要访问扬声器代码或扬声器和麦克风时,它都需要调用以下代码。

if (ApiInformation.IsApiContractPresent("Windows.ApplicationModel.FullTrustAppContract", 1, 0))
   {
      await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
   }

上面的代码访问Recorder.exe,并使用Appservice(com.recorder.service)创建到桌面应用程序的通信管道。 但是,每当我们启动FulltrustProcesslauncher时,它每次都会在任务管理器中为Recorder应用创建新实例,并且先前创建的实例未被使用,并且仍列在任务管理器中的UWP应用下。

我的问题是:有没有一种方法可以使用OnBackgroundActivated和StartProcess()方法创建以前与Recorder应用程序的新实例的连接,也可以杀死以前的实例? 我注意到在任务管理器中,两个Recorder.exe都分配了唯一的ID。 因此,似乎每当我们启动FullTrustProcessLauncher时,都会将一个新ID分配给Recorder应用程序,并且它无法标识旧的Recorder应用程序。

我尝试的操作是:我创建了一个全局变量,并在首次启动FullTrustProcessLauncher时设置为1,而在下次尝试访问Recorder应用程序时将其设置为1,则跳过了StartProcess()方法。 但这又带来了一个问题,即您的代码未记录。 我还在RecorderApp中创建了一种方法,以在不需要时退出Recorder应用程序。 但是我得到一个例外:未设置对象引用。 在Packager项目的Manifest文件中,我添加了a:SupportsMultipleInstances = false希望它不会创建多个实例,但似乎也无法正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM