Çıkış C konsol yakalama#
Konuları oldukça çok içeren bir konsol uygulaması var. Eğer doğru ise, belirli koşullar monitör ve programı sonlandırmak konuları vardır. Bu fesih herhangi bir zamanda olabilir.
Program diğer iş, temizleme ve tüm dosya kolları ve bağlantıları düzgün bir şekilde kapatın ben öyle kapanıyor zaman tetikleyen bir olay ihtiyacım var. Eğer zaten yerleşik varsa emin değilim .NET çerçeve, bu yüzden benim kendi yazmadan önce soruyorum.
Eğer çizgisinde bir olay olsaydı orada acaba
MyConsoleProgram.OnExit = CleanupBeforeExit;
CEVAP
Web kodu buldum nereye emin değilim, ama şimdi eski projelerimden birini buldum. Bu bir kapatma nedeniyle konsol aniden kapalı olduğunda, örneğin temizleme kod ya da yapmak için izin
[DllImport("Kernel32")]
private static extern bool SetConsoleCtrlHandler(EventHandler handler, bool add);
private delegate bool EventHandler(CtrlType sig);
static EventHandler _handler;
enum CtrlType
{
CTRL_C_EVENT = 0,
CTRL_BREAK_EVENT = 1,
CTRL_CLOSE_EVENT = 2,
CTRL_LOGOFF_EVENT = 5,
CTRL_SHUTDOWN_EVENT = 6
}
private static bool Handler(CtrlType sig)
{
switch (sig)
{
case CtrlType.CTRL_C_EVENT:
case CtrlType.CTRL_LOGOFF_EVENT:
case CtrlType.CTRL_SHUTDOWN_EVENT:
case CtrlType.CTRL_CLOSE_EVENT:
default:
return false;
}
}
static void Main(string[] args)
{
// Some biolerplate to react to close window event
_handler = new EventHandler(Handler);
SetConsoleCtrlHandler(_handler, true);
...
}
Güncelleme
Bu yorum değil, kontrol etmek için bu özel çözüm yok gibi görünüyordeğiliyi (ya da hiç)Windows 7. Bu konu ile ilgili aşağıdaki görüşmeler: http://social.msdn.microsoft.com/Forums/en/windowscompatibility/thread/abf09824-4e4c-4f2c-ae1e-5981f06c9c6e
Nasıl çıkış kodu belirtin bir konsol u...
Python shell komutu çalıştırma ve çıkı...
bash: boru çıktı VE yakalama çıkış dur...
Konsol'Visual Studio çıkış s 2010...
bash - otomatik olarak bir değişken iç...