0

我正在使用 VS 2010,winForm。

有人可以建议程序过程结束时如何运行方法吗?

我试过:如何在程序退出之前运行代码? 解决方案,但它只能通过“关闭按钮”关闭表单,如果我在任务管理器中结束进程它没有被调用,是否可以处理此类事件?

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
    AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit); 
}

public static void OnProcessExit(object sender, EventArgs e)
{
    if (Utils.RemindTime != DateTime.MinValue)
        Utils.SetStartup(true);
}
4

1 回答 1

1

您使用另一个程序来启动该程序。假设您的应用程序是“记事本”:

class Program
{
    static void Main(string[] args)
    {
        var startInfo = new ProcessStartInfo("notepad.exe");
        var process = Process.Start(startInfo);
        process.WaitForExit();
        //Do whatever you need to do here
        Console.Write("Notepad Closed");
        Console.ReadLine();
    }
}

您可以使用 Windows 上的批处理文件或 Linux 中的 shell 脚本。

当然,它不会让您访问您启动的程序的内部,但这是您确保在任务管理器终止进程后执行“某些代码”的唯一方法

于 2012-12-06T18:11:51.580 回答