开始在Windows中执行exe文件,重新启动计算机,然后选择进程停止的位置

时间:2015-08-04 06:43:47

标签: c# .net

这一切都可能吗?如果是这样,怎么样?流程将类似于:

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,因为服务将设置为自动启动。

1 个答案:

答案 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() {}

在安全/加载方法中,您必须将某些内容写入文件/注册表以记住您当前的状态

通过保存您当前的位置'你可以记住'你是最后一次在重启后做正确的事情。