CodeCharge 4.3 を使用して Classic ASP に実装された大規模プロジェクトのビルド/公開を自動化しようとしています。
Classic ASP はスクリプト言語であり、アプリケーション自体は実際には「コンパイル」されていませんが、発行プロセス中に CodeCharge ID が破損したページを検出できます。これは、残念ながら私たちにとって一般的なイベントです。これを CI 用の TeamCity にフックしたいと考えています。
CodeCharge にはコマンドライン インターフェイスがないため、UI を自動化する必要があります。
私は .NET UIAutomation クラスを使用しており、IDE の読み込み、発行のトリガー、出力ウィンドウからの出力のキャプチャ、および終了に成功しました。
パブリッシュをトリガーするには、 http://inputsimulator.codeplex.com/を使用して F9 キーを押します。CodeCharge がフォーカスを失うと失敗するので、私はこれに完全に満足しているわけではありません。フォーカスがあるかどうかに関係なく、UIAutomation を使用して F9 キー押下をウィンドウに送信する方法はありますか?
パブリッシュは、ツールバー、メニュー、またはツリービューに関連付けられたコンテキスト メニューからトリガーすることもできます。これらの要素が公開されていないように見えるため、これらのいずれにもあまり運がありませんでした。たとえば、inspect.exe を使用すると、ツールバー (Name="Standard", Classname="CCSToolbarWindow") を見つけることができますが、inspect.exe も UIAutomation アプリケーションもその下には何も表示されません。inspect.exe がツールバー要素で使用できる唯一のパターンは「IsLegacyIAccessiblePatternAvailable = True」です。左クリック イベントを特定の座標でツールバーに送信できる可能性があると思いますが、これは私のリーグから外れています。
このアプリケーションはかなり古いため、引き続き追求する場合は、アンマネージ UIAutomation を検討するか、Win32 API などを詳しく調べる必要があると思いますが、より簡単な解決策を望んでいました。