kib*_*rCZ 3 c# uwp desktop-bridge
我正在玩微软的UWP AppServiceBridgeSample(这里).
它运行良好,但我想摆脱BackgroundProcess应用程序的控制台窗口.这样做的原因是我BackgroundProcess启动了另一个Win32桌面应用程序并且仅作为中介使用,所以我不想用控制台窗口打扰用户.(是的,它可以最小化,但我宁愿不显示它).
我试图使用此处提到的API隐藏它,但没有运气,控制台窗口仍然可见.也没有将项目的输出类型从.work 切换Console Application到Windows Application.work.
我尝试过的另一件事是将其他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());
}
}
Run Code Online (Sandbox Code Playgroud)
似乎只能从控制台应用程序打开AppService连接.
所以这是我的两个问题:
AppServiceConnection不会在OpenAsync通话过程中失败吗?回复1:进入项目设置并将输出类型从Console更改为Windows应用程序.在完成后台进程之前,还要确保Main()函数不会退出.以下是使用Windows应用程序显示此示例的更好示例:https: //stefanwick.com/2017/05/26/uwp-calling-office-interop-apis/
Re 2:AppServiceConnection也从窗口化的应用程序中以相同的方式工作.确保添加对Windows.winmd的正确引用以便能够构建.如果您遇到问题,请发布具体问题,详细说明您遇到的问题
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |