16

デバッグが停止した場合でも、アプリケーションが閉じたときにコマンドを実行する方法または場所は?

ユーザーが開発者であり、Visual Studio の [デバッグの停止] ボタンをクリックしても、任意の出口でコマンドを実行する必要があります。

私は試してみます

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

しかし、うまくいきません。多分私は間違っているか、イベントではありません。

私はWinformsを使用していますが、Form Closeではイベントにすることはできません。

私は Visual Studio 2005 Net Framework 2.0 を (クライアントの要件により) 使用していますが、情報提供のみを目的としています。

多分私はこれを書き直すことができますか?:

public static void Exit();
4

4 に答える 4

15

問題は、「デバッグの停止」機能がアプリケーションを完全に停止することです。そのため、そのアプリケーション内のコードは実行されなくなります。

これを実現する唯一の方法は、外部でデバッグされているプロセスを監視し、停止している場合はコードを実行することです。

[MSDN]によると:

プログラムがVisualStudioから起動された場合、デバッグの停止はデバッグ中のプロセスを終了します。

ただし、 VisualStudioアドインを使用して目的を達成できる場合があります。

于 2012-06-13T22:02:33.780 に答える
1

MSDN によると: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.applicationexit%28v=vs.80%29.aspx

// Handle the ApplicationExit event to know when the application is exiting.
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

private void OnApplicationExit(object sender, EventArgs e) {
// When the application is exiting
}

これはあなたが実装したものですか?

于 2012-06-13T22:08:20.843 に答える
1

これを試して:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Prueba {
    static class Program {
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            //This is the magic line code :P
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
        }

        static void CurrentDomain_ProcessExit(object sender, EventArgs e) {
            MessageBox.Show("");
        }
    }
}

リファレンスはこちら (Fredrik Mörk): .NET Console Application Exit Event

于 2012-06-13T22:16:24.173 に答える