アプリをテストするのに Ruby やら JScript やらを使って COM インターフェイスをあれこれしていたのですが、今の所テストは好きな言語でいいのだし、見た目にもちょっとインパクトがほしいなあと思って C# 使ってみました。
いや、実際 EXE の中のウィンドウを別の EXE に移動する処理とかも必要なので、GUI 使わなきゃいけないんですが画面作るなら C++ より C# のが楽だろうと思ったというまとも (?) な理由もあるんですけどね……。
で、実際なんもかんも全てが滅茶苦茶簡単でした。っていうか前にもやったことあるはずなんですがすっかり忘れ去っていて感動再び。自分で書いたコードなんて数行しかないのにちゃんと動きます。素晴らしいなあ。
C# で COM インターフェイスを公開しているアプリを操作するには、 IDE のソリューションエクスプローラの「参照設定」を右クリックして「参照の追加」→「COM」で扱いたいコンポーネントを選ぶだけで良いようでキーボードの出番すらありませんでした。
参照の追加をすると、あとは普通のオブジェクトと同じ感じで公開されているインターフェイスにアクセスできました。例えば Excel を取り込むと new Excel.Application みたいな感じで Excel を操作するための COM オブジェクトを生成できる、と言った感じ。