Я разрабатываю консольное приложение .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?