这是可能吗?如果是这样,怎么样?流程将是这样的:
private void DoStuff()
{
// Do some stuff
RestartPc();
}
private void RestartPc()
{
Process.Start("shutdown", "/r /t 0");
}
// Call this when the PC is restarted:
private void DoStuffAfterRestart() {}
Run Code Online (Sandbox Code Playgroud)
所有这些代码都是一个Windows服务,所以如果 pc重新启动并且直接进入,那么告诉OnStart方法跳过的"最佳"方式是什么,因为服务将被设置为自动启动.DoStuff DoStuffAfterRestart
不知道是否有特殊方法,但我会有一个解决方案:
将您的程序添加到自动启动中。编辑:就像@PTwr 指出的那样,您不应该使用正常的自动启动。请改用“运行一次”注册表项。
将代码更改为如下所示:
public static void main(string[] args)
{
var x = loadState();
if(x == null)
DoStuff();
else
DoStuffAfterRestart();
}
private void DoStuff()
{
// Do some stuff
SafeState();
RestartPc();
}
// Call this when the PC is restarted:
private void DoStuffAfterRestart() {}
Run Code Online (Sandbox Code Playgroud)
在安全/加载方法中,您必须向文件/注册表写入一些内容以记住您当前的状态
通过保存“当前位置”,您可以“记住”上次所在的位置,并在重新启动后执行正确的操作。
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |