• ベストアンサー

他のアプリを操作する方法はありますか?

VB.NETで他のアプリケーションの操作をしたいのですが、 例えばインターネットエクスプローラーだったら、 ファイル(F)→名前をつけて保存(A)→保存(S)を行うには どのような命令をつかったら良いでしょうか? インターネットエクスプローラーに限ったことではないので、 IE限定ではなく汎用的に使える方法があったら助かります。 セキュリティーの設定も変えられてしまいそうなので、 そう簡単にはできないようになっているのでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

方法1:オートメーションを使う  InternetExplorer はコンポーネントとして「オートメーション」をサポートしているので、それを使って操作することができます。  手元に VB.NET が無いので、VB6 の場合を書きます。そう大きくは違わないのではないかと思います。  VB のメニュー、「プロジェクト」-「参照設定」で、リストから Microsoft Internet Controls を選びチェックを入れる(リストに無い場合は「参照」をクリックして c:\windows\system32\shdocvw.dll を選択する)。  以下のようなコードで http://goo.ne.jp/ を開き、保存することができます。 Dim WithEvents IE As SHDocVw.InternetExplorer Private Sub Form_Load()   Set IE = New InternetExplorer   IE.Visible = True   IE.Navigate "http://goo.ne.jp/" End Sub Private Sub Form_Unload(Cancel As Integer)   IE.Quit   Set IE = Nothing End Sub Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)   If (pDisp Is IE) Then     IE.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER   End If End Sub 但し、完全に自動ではなく「名前をつけて保存」のダイアログが表示されます。  長所:オートメーションは Windows に組み込まれた仕組みなので特別なものはいらない。  短所:インターフェースはソフトウェア毎に異なるので、個々に調べなければならない。     すべての「操作」を自動化できるわけではない。     すべてのソフトがオートメーションをサポートしているわけではない。 方法2:ユーティリティを使う  例えば、WinBatch (http://www.agtech.co.jp/products/winbatch/) のようなものを使って自動化できます。  似たようなものは、フリー/シェアウェアにもあるようです。 http://www.vector.co.jp/vpack/filearea/win/util/operate/index.html http://www.vector.co.jp/vpack/filearea/win/util/bat/index.html  長所:(多分)ほとんどの「操作」を自動化できる。     GUIソフトであれば、ほとんどのソフトを自動化できる。  短所:固有の「言語」を習得しなければならない(かも)。     ユーティリティ自体に不具合があるかも知れない。     ユーティリティのサポートが悪いかもしれない。 といったところでしょうか。

関連するQ&A