Visual Studio Add-inhttp://blogs.wankuma.com/tocchann/category/2133.aspxVisual Studio Add-inとっちゃんja-JP.Text Version 0.95.2004.102とっちゃん[WiX]VSギャラリーに登場!http://blogs.wankuma.com/tocchann/archive/2013/12/06/328274.aspx2013年12月06日 13:35:00 GMThttp://blogs.wankuma.com/tocchann/archive/2013/12/06/328274.aspxhttp://blogs.wankuma.com/tocchann/comments/328274.aspxhttp://blogs.wankuma.com/tocchann/archive/2013/12/06/328274.aspx#Feedback-1http://blogs.wankuma.com/tocchann/comments/commentRss/328274.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/328274.aspx<p>アップデートがあるといわれたのでクリックしたら</p> <p><a href="http://tocchann.wankuma.com/images/WiXVS_BEC2/image.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://tocchann.wankuma.com/images/WiXVS_BEC2/image_thumb.png" width="244" height="170"></a></p> <p>なんてものが出てきました。</p> <p>&nbsp;</p> <p>危うく、なんも考えずに更新しちゃうところだった。一部パスを見てるところがあるからおそらく動かないのよねぇ。。。</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/328274.aspx" width = "1" height = "1" />とっちゃんVSの出力ウィンドウに文字列を送り込む&hellip;http://blogs.wankuma.com/tocchann/archive/2009/04/06/170856.aspx2009年4月06日 18:52:00 GMThttp://blogs.wankuma.com/tocchann/archive/2009/04/06/170856.aspxhttp://blogs.wankuma.com/tocchann/comments/170856.aspxhttp://blogs.wankuma.com/tocchann/archive/2009/04/06/170856.aspx#Feedback2http://blogs.wankuma.com/tocchann/comments/commentRss/170856.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/170856.aspx<p><a title="出力ウィンドウに表示&hellip;" href="http://blogs.wankuma.com/tocchann/archive/2009/04/04/170762.aspx">出力ウィンドウに表示...</a> なんて書いておきながら肝心のやり方を書いていなかったので...</p> <p>オートメーションとはなにか?なんて話から入ると、本一冊分のボリュームになるので割愛するとして...<br>#オートメーションが題材の書籍は本当にあるんですけどねー絶版になって久しいwww</p> <p>VSのいろいろなウィンドウは、EnvDTE80.DTE2 インターフェースの ToolWindows プロパティで取得できます(2003までとは違うので注意してください)。ToolWindows インターフェースはたくさんのウィンドウを抱えていますが、この中の OutputWindow が出力ウィンドウになります。</p> <p>ですが、出力ウィンドウは非常に特殊でほかのウィンドウと同じように扱うことができません。特にマクロで特定文字列を突っ込んでという段取りと同じようにできると思ってると泣きますので注意してください(何度アクセス違反でエラーになったことか...orz)。</p> <p>それと、意識していない人も多いかもしれませんが、出力ウィンドウは作業ごとに中にウィンドウが出てくる仕組みになっています(一つ一つはペインと呼ぶ特殊な子ウィンドウになっている)。これを作成(または取得)して、画面出力を行います。</p> <p>ま、あんまり細かなことを書いても面白くないので、サンプルコードを貼り付けておきます。VS2005以降ならそのまま使えるはずです(動作確認はVS2008でしかやってないですけどねw)。</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:34817fc4-d21c-41de-a3fe-8bb21e0ee4c2" class="wlWriterEditableSmartContent"><pre name="code" class="vb">Private Function GetOutputPane(ByVal dte2 As EnvDTE80.DTE2, ByVal paneName As String) As OutputWindowPane Dim pane As OutputWindowPane Try 'あるものと仮定して取得してみる pane = dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item(paneName) Catch ex As ArgumentException '存在しないと引数が間違ってる例外が飛んでくるので、追加する pane = dte2.ToolWindows.OutputWindow.OutputWindowPanes.Add(paneName) End Try '指定されたペインをアクティブにする(ちらつき軽減のためこっちを先に行う) pane.Activate() '出力ウィンドウをアクティブにする dte2.ToolWindows.OutputWindow.Parent.Activate() Return pane End Function Sub TestOutputWindow() GetOutputPane(DTE, "Test").OutputString("テスト" + vbCrLf) End Sub </pre></div> <p>こんな感じで使います。バッチ処理をマクロで行いたいという場合には便利ですよ。でも、VBがεπιστημηさんより駄目駄目なおいらは、マクロでも十分な機能のために、C#アドイン作りました。</p> <p>OutputWindow にたどりつけるまでに一日かかったとか言わないんだからね!</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/170856.aspx" width = "1" height = "1" />とっちゃん出力ウィンドウに表示&hellip;http://blogs.wankuma.com/tocchann/archive/2009/04/04/170762.aspx2009年4月04日 18:59:00 GMThttp://blogs.wankuma.com/tocchann/archive/2009/04/04/170762.aspxhttp://blogs.wankuma.com/tocchann/comments/170762.aspxhttp://blogs.wankuma.com/tocchann/archive/2009/04/04/170762.aspx#Feedback1http://blogs.wankuma.com/tocchann/comments/commentRss/170762.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/170762.aspx<p>Visual Studio Add-in なるものを作ってます...自分の仕事の簡略化のために...</p> <p>で、出力ウィンドウに専用ペインを作って、文字列を表示というのはできるようになったんですが、ループ回ってたりすると、終わるまで描画されないという...</p> <p>よくある質問のような状況になってました...</p> <p>マクロなら問題ないのになーと思って、なんか再描画コマンドないかしら?と思ってたんですが、アドインの場合はスレッド起こしてそっちでループ回せば、出力ウィンドウの表示はスレッドまたいで描画してくれるんですねー</p> <p>.NET はスレッド作るのも単純にできるし、1行書き換えただけで臨む機能ができちゃいました...w</p> <p>&nbsp;</p> <p>ま、クラス化してたからなんですけどねwww</p> <p>これでようやく本題機能に注目できる...</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/170762.aspx" width = "1" height = "1" />

AltStyle によって変換されたページ (->オリジナル) /