我的c#应用程序中有一个重启按钮。
这是我的代码片段:
System.Diagnostics.Process.Start("shutdown.exe", "-r -t 15");
通过批量重启系统时隐藏Windows消息
我知道,我可以通过-c "some string"
改变消息的内容,
我怎样才能完全删除它? (我有我自己的留言来显示)
谢谢!
我的c#应用程序中有一个重启按钮。
这是我的代码片段:
System.Diagnostics.Process.Start("shutdown.exe", "-r -t 15");
通过批量重启系统时隐藏Windows消息
我知道,我可以通过-c "some string"
改变消息的内容,
我怎样才能完全删除它? (我有我自己的留言来显示)
谢谢!
你可以试试:
System.Diagnostics.Process.Start("shutdown.exe", "-r -t 15 -f");
-f强制运行的应用程序关闭而没有预先警告用户。 -t参数在为-t参数指定大于0的值时隐含。
感谢您的答案,但它没有帮助。我仍然收到相同的消息框 – nafarkash
您可以尝试 'System.Threading.Thread.Sleep(15000); System.Diagnostics.Process.Start(“shutdown.exe”,“-r -t 0 -f”);' 这是否有帮助? –
感谢@nick_gabpe我设法绕过了这个问题。
不知道这是否是最巧妙的答案,但它的工作原理..
我有“立即重新启动”按钮,然后我用一个BackgroundWorker我的问题一个消息:
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");
}
}
这里的BackgroundWorker有什么意义? –
只需要在背景上使用另一个线程,以便我的UI仍然可以工作,这是我头脑中首先想到的。你有更好的方法来做到这一点? – nafarkash
代码*实际上是否执行Thread.Sleep,或者这只是您在那里做实际工作的代码的演示?我不清楚为什么当你强制立即关闭时,你关心你的UI保持响应。 –
用'的Windows API '在[相关文章]中描述的调用(http://stackoverflow.com/questions/102567/how-to-shut-down-the-computer-from-c-sharp)。 –