在系统关闭之前执行程序

时间:2016-04-05 15:18:54

标签: c# windows shutdown

我有一个程序需要在系统关闭执行之前运行。这意味着,在任何程序因关闭而终止之前,我需要执行所述程序,理想情况是通过Process.Start()。

最初我尝试在Windows Shutdown Scripts中执行所述程序,但该脚本仅在程序终止后执行。但是我需要以正确的顺序终止一些正在运行的应用程序。

我已尝试过事件SystemEvents.SessionEnding和SessionEnded,但此事件不会让您等待超过1-2秒,并且也无法取消关闭。

我到达this example,在关于关闭的WndProc事件中,我将执行一个进程。我到达事件,我达到了我可以实际暂停关机过程的程度。但是,当我尝试实际调用一个进程时,我得到了" 0xC0000142"错误。 搜索到这导致一个选项是用户不正确,但我想与运行执行程序的用户调用此应用程序。另一种选择是环境路径错误。我为第二个选项设置了一个环境路径,但在我看来,我不需要为第一个选项更改任何内容,因为我想用当前用户执行它。

我想到的第三种可能性是,在系统关闭的这种状态下,不会产生新的进程。

我该怎么做才能解决这个问题并在这里执行程序?我此时似乎没有想法。

澄清: "清理"程序需要按给定顺序关闭程序。要关闭的程序是我们自己的,但Windows Forms(我能看到的唯一可以使用关机处理程序的方法)不能在那里使用。 程序A是处理OnShutdown的程序。关机时,程序A将调用程序B,它执行程序的有序关闭。程序B,在我的解决方案(包括表单)中无法启动并返回错误,如第4段所述。此处唯一的用户交互是用户按下电源按钮导致系统关闭,或远程执行&#34 ; shutdown.exe的"调用

0 个答案:

没有答案