Запустите консольное приложение .NetCore в фоновом режиме на MacOS - PullRequest
0 голосов
/ 12 апреля 2019

Я разрабатываю консольное приложение .NetCore, которое будет использоваться как в Windows, так и в MacOS. У меня есть требование, чтобы Консольное приложение никоим образом не было видно конечному пользователю.

Я добился этого в Windows, используя dll из kernel32 и user32:

[DllImport("kernel32.dll")]
private static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;
const int SW_RESTORE = 9;

public static void EnableBackgroundMode()
{
    var handle = GetConsoleWindow();
    ShowWindow(handle, SW_HIDE);
}
public static void DisableBackgroundMode()
{
    var handle = GetConsoleWindow();
    ShowWindow(handle, SW_SHOW);
}

При попытке использовать эти методы в MacOS я получаю 'System.DllNotFoundException', что ожидается, потому что эти DLL являются окнами, специфичными для моего понимания.

Есть ли способ достичь этого на MacOS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...