2012-08-07 70 views

cevap

3

görsel stüdyo bu ...\Microsoft Visual Studio 9.0\Common7\IDE\*.vsk

8

Sen DTE arayüzler üzerinden erişebilirsiniz listeler içerir. Sonra GetService(typeof(SDTE)) (veya diğer uygun mekanizma) üzerinden EnvDTE.DTE arayüzünü alın ve:

EnvDTE.DTE dte = ...; 
var commands = dte.Commands.Cast<EnvDTE.Command>(); 

foreach (var command in commands.OrderBy(c => c.Name)) 
{ 
    Console.WriteLine(command.Name); 
} 

Oldukça yavaş olabilir bu belirtmeliyiz, en iyi mümkünse kaçınılması oluyor böylece ...

+0

Gerçekten eşzamansız bir sürüm yok. EnvDTE API, kullanıcı arayüzü iş parçacığına bağlıdır. Bunu bir arka plan iş parçacığı üzerinde çalıştırabilirsiniz, ancak kodlamayı şeffaf bir şekilde UI iş parçacığına geri döndürmeyi tetiklersiniz, bu da kodu normalden daha yavaş hale getirir. Günün sonunda, tüm komutları sıralamak, gerçekten “yapmayın” şeylerinden biridir. Normalde birisi bunun için sorarsa, geri çekilmelerini ve neden onlara ihtiyaç duyduklarını sorguladım. –

0

Here bir olduğunu VS VoiceExtension için Mads Kristensen tarafından derlenmiş VS komutlarının kullanışlı listesi.