在MacOS上在后台运行.NetCore控制台应用程序

时间:2019-04-12 11:51:32

标签: c# macos .net-core

我正在开发.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上有什么方法可以实现这一目标吗?

0 个答案:

没有答案