C# 如何制作关闭Windows的控制台程序?

C# 如何制作关闭Windows的控制台程序?,c#,console-application,C#,Console Application,我是新来的堆栈溢出,所以这是我的第一个问题。我正在尝试制作一个控制台应用程序,它在C#中立即关闭。目前这是我在项目中拥有的所有代码 class Program { [DllImport("advapi32.dll")] static extern bool InitiateSystemShutdown( [MarshalAs(UnmanagedType.LPStr)] string lpMachinename, [M

我是新来的堆栈溢出,所以这是我的第一个问题。我正在尝试制作一个控制台应用程序,它在C#中立即关闭。目前这是我在项目中拥有的所有代码

class Program
{
    [DllImport("advapi32.dll")]
    static extern bool InitiateSystemShutdown(
                [MarshalAs(UnmanagedType.LPStr)] string lpMachinename,
                [MarshalAs(UnmanagedType.LPStr)] string lpMessage,
                Int32 dwTimeout,
                bool bForceAppsClosed,
                bool bRebootAfterShutdown);
    static void Main(string[] args)
    {          
        InitiateSystemShutdown("localhost", null, 0, true, false);
    }
} 
出于某种原因,它每隔一段时间才起作用。我的意思是我可以点击它20次,但它什么都不会做。但在某些情况下,它在第一次尝试时就可以工作,并按预期关闭计算机。但这需要做到完美。所以我想知道是否有专业人士(我有点初学者)可以给我一些建议/代码。我错过什么了吗?有什么不对劲吗?任何帮助都将不胜感激。

最简单的:

using System.Diagnostics;

ProcessStartInfo shutdown = new ProcessStartInfo("shutdown.exe", "-s");
    Process.Start(shutdown);

还有其他选择,只需进行搜索或查看。

您需要关闭什么?@VigneshKumar根据函数调用,我猜是系统(Windows)。必须这样吗?我可以演示如何使用cmd关闭它。