掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecute 関数で IE を非表示にするには? (ID:45442)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>今回は起動直後から非表示になってくれる方法を知りたかったのです うーん、コメントの書き方で誤解させちゃいましたかね? あ さんがフォローしてくれてる通り MyIE.Visible:=True; を削除するか、明示的にFalseにすれば最初から非表示ですよ。 >HTMLページからデータを取得してデータベースに保存する、というものを作成していて、 >IEを操作して自動的に次のページに進むようにしているのですが、そのときIEが表示されると これは逐次ShellExecuteすることで新しいページに移動させているということですか? その後どのようにデータを取得しているのでしょうか。まさかキャッシュからソースを取得? そのようなやり方なら、IEを使わずにUrlMonのURLDownloadToFileというAPI一発で出来てしまいます。 またWinInetには様々なAPIがあり、ファイルに落とさずにダウンロードすることも可能です。 で…、いくつかの案が出ましたが、私はTWebBrowserを非表示で使うことをおすすめします。 IEオブジェクトと違いOnQuitなどのイベントによる支援も受けられ(※1)、型チェックやコード補完も効きます(※2)。 何より、ソースの取得はもちろんのこと、DOM操作によって自在にHTML要素の内容を取得できます(※3)ので。 例: ・ ソースを取得 … VarToStr(Document.documentElement.outerHTML) ・ I番目のAタグリンクを取得 … VarToStr(Document.getElementsByTagName('a').item(I).href) ・ JavaScriptを実行 … Document.parentWindow.execScript('alert("Hello!")') 上記の方法は、JavaScriptやVBScriptのコードが工夫次第でほぼそのまま使えるという利点があります。 ただし、スクリプト的に操作をしているので、タイプミス等があっても実行されるまでエラーは出ません。 ※1 →IEオブジェクトでもIEEventsという外部のコンポーネントで一応可能。 ※2 →IEオブジェクトもSHDocVwのInternetExplorer(IWebBrowser2)でキャストして使えば可能。 ※3 →もちろんIEオブジェクトでも可能ですが。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.