121 votes

Commande de fenêtre immédiate de Visual Studio pour Effacer tout

Existe-t-il une commande pour effacer la fenêtre immédiate dans Visual Studio ?

Je déteste avoir à saisir la souris pour un menu de clic droit à cet endroit - je préférerais simplement taper "cls" ou autre.

14 votes

Je n'avais pas réalisé qu'il y avait un menu de clic droit !

1voto

mrez.ir Points 83

Pour Visual Studio 2012, j'utilise :

Public Sub ClearImmediateWindow()
    Dim dte As EnvDTE80.DTE2 = Marshal.GetActiveObject("VisualStudio.DTE.11.0")
    dte.Windows.Item("Immediate Window").Activate() 'Activate Immediate Window  
    dte.ExecuteCommand("Edit.SelectAll")
    dte.ExecuteCommand("Edit.ClearAll")
    Marshal.ReleaseComObject(dte)
End Sub

pour effacer automatiquement la fenêtre immédiate des codes (nécessite d'ajouter des références DTE au projet). Si cela ne fonctionne pas, essayez VisualStudio.DTE.8.0 , VisualStudio.DTE.9.0 , ... en fonction de votre version de Visual Studio.

1voto

Wade Hatler Points 601

J'ai utilisé la dernière réponse presque mot pour mot et ça marche, même si je voulais que l'accent soit remis là où il était. Voici la version C# très légèrement améliorée. Je l'active avec un commutateur de configuration.

#if DEBUG
    if (GetIni("Debug", "ClearImmediateWindow", true)) {
        try {
            var dte = (EnvDTE.DTE) Marshal.GetActiveObject("VisualStudio.DTE.15.0");
            var me  = dte.ActiveWindow;
            dte.Windows.Item("Immediate Window").Activate();
            dte.ExecuteCommand("Edit.ClearAll");
            me.Activate();
        }
        catch { /* Meh! */ }

endif

1 votes

Si vous avez plus d'une instance de VS ouverte, la loi de Murphy veut qu'elle efface l'autre et que vous essayiez de comprendre pourquoi elle ne fonctionne pas. En tout cas, c'est ce que je fais depuis 20 minutes.

0 votes

Et maintenant ça marche, mais je pense que c'est seulement si VS est la fenêtre active. Si une autre fenêtre (par exemple le projet que je débogue) est active lorsque ce code est exécuté, j'obtiens "Exception from HRESULT : 0x80010001 (RPC_E_CALL_REJECTED)".

0 votes

Vous avez raison. Si vous exécutez 2 instances, vous devez trouver un moyen rationnel de les différencier. J'imagine que vous devriez itérer toutes les fenêtres principales et vérifier celle qui a le ZOrder le plus élevé. J'ai cessé d'utiliser cette méthode il y a quelque temps parce que j'ai trouvé une meilleure solution. J'ai écrit ceci parce que Visual Studio vole le message Debug. Pour tous les autres outils, je les exécute via DbgView (SysInternals). J'ai écrit un processus dorsal qui les capture avant que Visual Studio ne les vole, et les transmet à DbgView, ce qui me permet de revenir à ce que je voulais au départ.

0voto

Ranjith Points 1

Ceux qui se demandent comment effacer la fenêtre immédiate sur Visual Studio Mac, il suffit de faire un clic droit dans la fenêtre et de sélectionner l'option Clair

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X