我正在开发.NetCore控制台应用程序,该应用程序将在Windows和MacOS上使用。我要求控制台应用程序对任何最终用户都不应该可见。
我已经在Windows上通过使用kernel32和user32 dll实现了这一点:
[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是我所理解的特定于Windows的窗口。
在MacOS上有什么方法可以实现这一目标吗?