2010-02-25 25 views
7

Visual Studio'da hata ayıklama hakkında bir sorum var. Hata ayıklanmış bir uygulamanın her başlatılmasından önce Visual Studio'daki Anlık Pencereyi otomatik olarak temizlemek mümkün mü? >cls komutu ve Context Menu->Clear All yararlıdır, ancak bunlar her çalıştırıldığında otomatik değildir ve kişisel dikkat gerektirir. Yine System.Diagnostics.Debug.Print()|Write*() yöntemleri yalnızca Acil Pencereye mesaj yazabilir, bu nedenle >cls geçerli değildir. Problem için herhangi bir çözüm var mı? (Şu anda VS 2008 kullanıyorum)Visual Studio'da otomatik pencere temizleme otomatik olarak temizleme

Önerileriniz için teşekkür ederiz.

cevap

9

İşte bunu yapan makro. Makrolar IDE Sınıf Görünümünde MyMacros - EnvironmentEvents öğesine gidin. Açık (çift tıklama) EnvironmentEvents. modül içinde aşağıdaki kodu ekleyin:

İşte
Private Sub BuildEvents_OnBuildDone(_ 
    ByVal Scope As EnvDTE.vsBuildScope, _ 
    ByVal Action As EnvDTE.vsBuildAction) _ 
    Handles BuildEvents.OnBuildDone 

    Try 
     Dim activeWin As Window = DTE.ActiveWindow 
     Dim immedWin As Window = DTE.Windows.Item("{ECB7191A-597B-41F5-9843-03A4CF275DDE}") 
     immedWin.Activate() 
     DTE.ExecuteCommand("Edit.ClearAll") 
     activeWin.Activate() 
    Catch ex As Exception 
    End Try 
End Sub 

bunu gibi görünmelidir nasıl görebilirsiniz: macro in EnvironmentEvents http://i46.tinypic.com/2vxg6so.png

benim hızlı öğretici how to create and execute VS macro bakınız.

+0

Cevabınız için teşekkür ederiz, Peter. Kodunuzu VS Macros'ta denedim, ancak bir hatam var. "" Handles deyimi, içerilen türde veya onun temel türlerinden birinde tanımlanan bir WithEvents değişkenini gerektirir. "_ Satırında * BuildEvents.OnBuildDone * BuildEvents nesnesiyle birlikte . Maalesef VB.NET'e çok aşina değilim. –

+1

Bunu EnvironmentEvents modülüne yerleştirdiniz mi? Correcr değişken tanımıyla birlikte otomatik olarak oluşturulmuş bölge olmalıdır: Public WithEvents BuildEvents EnvDTE.BuildEvents Bu bölgeden sonra makroyu ekleyin. Ekran görüntüsünün bitiminde cevapladığım ekran görüntüsünü –

+0

ile cevaplayacağım.))) Teşekkürler Peter! :) –