这一切都可能吗?如果是这样,怎么样?流程将类似于:
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() {}
所有这些代码都是 Windows服务,那么告诉OnStart
方法跳过DoStuff
的“最佳”方式是什么 pc重新启动并直接转到DoStuffAfterRestart
,因为服务将设置为自动启动。
答案 0 :(得分:2)
Idk如果有特殊方法,但我会有一个解决方案:
将您的程序添加到自动启动。编辑:像@PTwr指出你不应该使用正常的自动启动。请改用Run once registry key。
将代码更改为:
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() {}
在安全/加载方法中,您必须将某些内容写入文件/注册表以记住您当前的状态
通过保存您当前的位置'你可以记住'你是最后一次在重启后做正确的事情。