2016-12-07 2 views
0

C# 응용 프로그램에 재부팅 버튼이 있습니다.
이 내 코드입니다 :
System.Diagnostics.Process.Start("shutdown.exe", "-r -t 15");시스템을 다시 부팅 할 때 Windows 메시지를 숨김

내 문제는 내가 기본 Windows 메시지 얻고 있다는 것입니다 : 내가 -c "some string"를 통해 메시지의 내용을 변경할 수 있다는 것을 알고 enter image description here


어떻게 완전히 제거 할 수 있습니까? (나는 내 ​​자신의 메시지를 보여줄 것이다)

고마워!

+0

사용'윈도우 API : 그것은 산뜻한 대답,하지만 작동하는지

나는 "다시는 지금"버튼을, 나는 내 문제에 대한 BackgroundWorker에 사용을 가진 메시지 박스가 ..
확실하지 않음 '전화 [관련 게시물] (http://stackoverflow.com/questions/102567/how-to-shut-down-the-computer-from-c-sharp)에 설명되어 있습니다. –

답변

0

당신이 시도 할 수 :

System.Diagnostics.Process.Start("shutdown.exe", "-r -t 15 -f"); 

하는 힘은 사전 경고 사용자없이 닫을 응용 프로그램을 실행 -f. -t 매개 변수에 0보다 큰 값이 지정되면 -f 매개 변수가 암시됩니다.

+0

답변 주셔서 감사합니다. 그러나 도움이되지 않습니다. 여전히 같은 메시지 상자가 나타납니다. – nafarkash

+1

시도해 볼 수 있습니다 'System.Threading.Thread.Sleep (15000); System.Diagnostics.Process.Start ("shutdown.exe", "-r -t 0 -f"); ' 이 정보가 도움이 되었습니까? –

0

@nick_gabpe 덕분에 문제를 피할 수있었습니다.

public static void RebootMachine() 
    { 

     BackgroundWorker worker = new BackgroundWorker();    
     worker.DoWork += (o, ea) => 
     { 
      System.Threading.Thread.Sleep(15000); 
     }; 
     worker.RunWorkerCompleted += (o, ea) => 
     {     
      System.Diagnostics.Process.Start("shutdown.exe", "-f -r -t 0"); 
     };    

     worker.RunWorkerAsync(); 

     DialogResult result = MsgBox.Show("The device will be initialized in 15 seconds", 
      "Restarting device", MsgBox.Buttons.RestartNow, MsgBox.Icon.Info, MsgBox.AnimateStyle.FadeIn); 

     if (result == DialogResult.Yes) 
     { 
      System.Diagnostics.Process.Start("shutdown.exe", "-f -r -t 0");  
     } 

    } 
+0

여기 BackgroundWorker의 요점은 무엇입니까? –

+0

내 UI가 여전히 작동 할 수 있도록 배경에 다른 스레드가 필요하여 이것이 내 마음을 통해 나온 첫 번째 것입니다. 그렇게 할 수있는 더 좋은 방법이 있습니까? – nafarkash

+0

코드 * 실제로'Thread.Sleep'을 실행합니까, 아니면 실제 작업을하기 위해 거기에있는 코드의 데모입니까? 즉각적인 종료를 강요 할 때 UI가 반응하는 것을 걱정하는 이유는 분명하지 않습니다. –

관련 문제