2013-12-15 3 views
0

Я новичок в переполнении стека, так что это мой первый вопрос. Я пытаюсь создать консоль , которая немедленно отключается в C#. В настоящее время это ВСЕ код, который у меня есть в проекте.Как создать консольную программу, которая отключает Windows?

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 раз, и он ничего не сделает. Но в некоторых случаях он работает с первой попытки и выключает компьютер, как ожидалось. Но это должно быть идеально. Поэтому мне было интересно, есть ли какие-нибудь профессионалы (я вроде бы новичок), которые могли бы дать мне совет/код. Я что-то упускаю? Что-то неуместно? Любая помощь будет оценена по достоинству.

+0

Вам нужно закрыть что? –

+0

@VigneshKumar Я предполагаю систему (Windows), согласно вызову функции. – Rotem

+0

Это должно быть так? Я могу показать вам, как закрыть его с помощью cmd. –

ответ

1

Самый простой:

using System.Diagnostics; 

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

дополнительные альтернативы, просто сделать поиск или искать here или here.

Смежные вопросы