他のサイトでExcelを起動するサンプルは見るのですが、
IEの方はそのまんまのサンプルが無いようで理解できません。
自分では出来ているつもりなのですが、どうか宜しくお願いします。
VB2005EE Win2000 IE6を使っています。
以下、自分の書いたテストコードです。(DLLを作っています)
手始めにコンストラクタとデクリメント?(終了させるもの)を作っています。
Private objIE As Object 'As InternetExplorer.Application
Public Sub Set_IE_Object(Optional ByVal visibleMode As Boolean = True)
objIE = System.Reflection.Missing.Value ←ここはMSDNのサンプルから
objIE = New InternetExplorer.Application ←ここがダメです
objIE.MenuBar = False 'メニューバーを非表示
objIE.ToolBar = False 'ツールバーを非表示
objIE.StatusBar = False 'ステータスバーを表示
objIE.Left = 0 '表示位置を変更
objIE.Top = 0
'objIE.document.ParentWindow.screenの値を取得する為、ブランクページを表示する
objIE.Navigate("about:blank")
'InternetExplorerを最大化
objIE.Width = objIE.document.ParentWindow.screen.availWidth
objIE.Height = objIE.document.ParentWindow.screen.availHeight
objIE.Visible = visibleMode 'InternetExplorer画面表示
End Sub
Public Function Quit_IE_Object() As Boolean
objIE.Quit() 'IEを閉じる
System.Runtime.InteropServices.Marshal.ReleaseComObject(objIE)
objIE = Nothing 'オブジェクトの開放
Quit_IE_Object = True
End Function
現在のコードだとInternetExplorer.Application指定が間違いのようです。
そこで Dim ieProcess As System.Diagnostics.Process = _
System.Diagnostics.Process.Start("InternetExplorer.Application")
というプロセスの作成?という方法をとったのですが、
ieProcess.ToolBarなどの設定部分がエラーになります。
プロセスからの操作方法。
Newステートメントからの操作方法の違いがいまいちわかっていません。
CreateObjectを使うと動作はしたのですが、この場合のオブジェクトの解放が
Disposeの所でエラーになってしまいます。
System.Reflection.Missing.Valueという表記理由もリファレンスを呼んでも
理解できません。
.NETになってからオブジェクトの解放が重要ということは調べたのですが・・・。
安全な操作がわからないのです。
というか色々な方法があるのは解るのですが、適切な組み合わせがわからないです。
逆引き辞典とかを買ってみたのですが、疑問部分が解決できません。
どなたかアドバイスしていただけないでしょうか?
お勧めの図書を紹介していただけるだけでも嬉しいです。
初めてクラスを使ってプログラムを楽しんでいる段階です。
ツイート | ![]() |