2008-09-12 24 views
1

Bir Windows kutusunda C# 'dan, bir işlemin nasıl durdurulduğunu öğrenmenin bir yolu var mı? Process sınıfına bir göz attım, EnableRaisingEvents = true öğesini ayarladıktan sonra Exited olayından güzel ve samimi bir geri arama almayı başardım; ama sürecin öldürülüp ya da doğal olarak çıkıp çıkmadığını öğrenemedim mi?İşlemim nasıl çıkış yaptı?

cevap

3

İşlem İzleyicisini (Sysinternals, Microsoft'un bir parçası) açın, işleminizi gerçekleştirin ve bırakın, ardından İşlem İzleyicisi sonuçlarını işlem adınıza göre filtreleyin; çıkış dahil herşeyi görebilirsiniz. kodlar.

0

Bunun için işlemin dönüş kodunu kullanabilirsiniz. Prosesiniz ana yönteminden sıfır olmayan bir değer döndürürse, işlemin kendiliğinden çıkıp çıkmadığını kontrol edebilirsiniz (dönüş değeri eşleşir).

0

Güzel cevap Antoine, ne yazık ki dönüş kodunu değiştiremiyorum. Benim kötü - Sanırım sorunun kapsamını daraltacağım.

Gerçekçi bir programatik çözümün bile gerekmediğini sanmıyorum - bir yardımcı program iyi olurdu - Process Explorer etkileyici görünüme baktım ama bana bu ayrıntıları vermiyor gibi görünmüyor.

Sorun şu ki, sorgulamak istediğim program, Windows zamanlanmış görevlere eşdeğer bir programlama sistemi tarafından çalıştırılıyor, ancak bu değil. Programlayıcının programı zorla durdurup durdurmadığını tespit etmenin bir yolu var mı?