我在玩微软的 UWP AppServiceBridgeSample
(这里)。
它运行良好,但我想摆脱BackgroundProcess
应用程序的控制台窗口。这样做的原因是我BackgroundProcess
启动了另一个 Win32 桌面应用程序并且仅作为中介工作,所以我不想用控制台窗口打扰用户。(是的,它可以最小化,但我宁愿根本不显示它)。
我曾尝试使用此处提到的 API 隐藏它,但没有运气,控制台窗口仍然可见。也没有将项目的输出类型从Console Application
.workWindows Application
切换。
我尝试过的另一件事是将其他BackgroundProcess
项目创建为 Windows 应用程序。在我调用之前它运行良好AppServiceConnection.OpenAsync()
,这导致BackgroundProcess
应用程序退出强文本,因此与 UWA 的连接不可用。
static async void ThreadProc()
{
try
{
AppServiceConnection connection = new AppServiceConnection();
connection.AppServiceName = "CommunicationService";
connection.PackageFamilyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;
connection.RequestReceived += Connection_RequestReceived;
AppServiceConnectionStatus status = await connection.OpenAsync();
//status check etc. ...
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
似乎只能从控制台应用程序打开 AppService 连接。
所以这是我的两个问题:
- 是否有可能隐藏后台进程的控制台窗口?
- 我可以将后台进程用作 Windows 应用程序,而不会在调用
AppServiceConnection
期间失败吗?OpenAsync