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のシェルスクリプトと似たようなものにすることができます。

もちろん、起動したプログラムの内部にアクセスすることはできませんが、タスクマネージャーによってプロセスが強制終了された後に「コード」が実行されるようにする唯一の方法です。

于 2012-12-06T18:11:51.580 に答える