AppServiceBridge без консольного окна
Я играю с UWP от Microsoft AppServiceBridgeSample
( здесь).
Это работает хорошо, но я хотел бы избавиться от окна консоли BackgroundProcess
приложение. Причина в том, что мой BackgroundProcess
запускает другое настольное приложение Win32 и работает только как посредник, поэтому я не хочу мешать пользователям с помощью окна консоли. (Да, это можно свести к минимуму, но я бы предпочел не показывать это вообще).
Я пытался скрыть это с помощью API, упомянутого здесь, но без удачи, окно консоли все еще видимо. Также не было переключения типа вывода проекта с Console Application
в Windows 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
звонки?
1 ответ
Re 1: Зайдите в настройки проекта и измените тип вывода с консоли на приложение Windows. Также убедитесь, что функция Main() не закрывается, пока вы не закончите с фоновым процессом. Вот лучший пример, который показывает это с приложением Windows: https://stefanwick.com/2017/05/26/uwp-calling-office-interop-apis/
Re 2: AppServiceConnection работает так же, как и из оконного приложения. Убедитесь, что вы добавили правильную ссылку на Windows.winmd для возможности сборки. Если у вас есть проблемы с этим, пожалуйста, опубликуйте конкретный вопрос с подробной информацией о проблеме, которую вы видите