1 名前:デフォルトの名無しさん [2006/04/16(日) 21:08:42 ] ===================================== IEコンポーネントを利用したブラウザのプログラミングに関する情報の交換及び再 利用を目的とした総合情報スレッドです。 ===================================== 最近IEコンポーネントを利用してブラウザを作るプログラマが増えてきました。こ れから自作してみようという人も多いでしょう。コンポーネントを貼り付けるだけ なら誰でも出来ますが複雑な制御を行うにはそれなりの経験や知識が要るようです。 私自身が知りたいのも山々ですが、似たような質問が分散するのを避けるためにも 統一しましょう。ブラウザ作者、COM に精通した方大歓迎です。もちろん公開した くない "禁断のテク" もあると思いますが、そこは各人の判断ということでお願い します。 ※ 開発言語は問わないことにしますので質問するときはその辺を踏まえてお願いし ます。 (以上、前スレより) IEコンポーネントを使い倒すスレ pc5.2ch.net/test/read.cgi/tech/982930049/ かなり前のスレですが続編を立てました。
519 名前:hiro [2008/10/08(水) 18:50:31 ] はい、読みました。 昔会社でやってた頃、VC6.0のときは作動できたのですが、 なぜか自宅のVC++.net 2003 Standardではエラーが出るのです。
520 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:40:56 ] >>519 該当サイトのサンプルをダウンロードして、VC6ではOKだっが VS2005 PROでは駄目だね。 atlライブラリか、ActiveXの扱いの問題か。 少し試したが原因が分からないので、ソースを修正してた。 以下ソースを参考にしてみてくれ。 リソースエディタで、ActiveXコントロールを削除して、 STATICテキストを任意サイズにし、コントロールIDを"IE_WINDOW"と設定する。 そして、main.cを以下のようにコード修正 int WINAPI WinMain 省略 ::CoInitialize(0); // ATLモジュールを初期化します。 省略 // ATLモジュールの後始末です。 _Module.Term(); ::CoUninitialize(); 省略 // ActiveXコントロールのインターフェースを要求します。 //if (AtlAxGetControl(GetDlgItem(hDlg, IDC_IE), &punkIE) == S_OK) { HWND hwnd = 0; hwnd = ::GetDlgItem( hDlg, IE_WINDOW ); if ( 0 != hwnd ) { ::AtlAxCreateControlEx( OLESTR( "{8856F961-340A-11D0-A96B-00C04FD705A2}"), hwnd, 0, 0, 0, IID_NULL, 0 ); ::AtlAxGetControl( hwnd, &punkIE ); } 省略
521 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:58:55 ] html 関連の質問です。 VC++ 2005、WinXPでプログラムを組んでいますが、あるhtmlファイルからanchorタグを読み込み、リンク先のページを取得したいと思います。 一々、自作のライブラリでリンク先を検出するようだと、作成時間がかかって仕方ないので、どなたか、htmlをパースしてリンク先のアドレスを取得できるような ライブラリや関数などをご存知の方、教えていただけないでしょうか? ---- c++相談室から誘導されてきました。 よろしくお願いします。
522 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:10:07 ] その程度の用途でIEコンポーネントなんか使ったら余計時間かかる気がするが。 正規表現かなんかで抽出したほうがはやくね?
523 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:18:16 ] マジっすか…… 正規表現だとboost辺りかな…… とりあえず、boost使ってみることにします。 どうもありがとうございました
524 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 13:17:44 ] BHOを作ってるのだが、 VSのプロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド にiexplorer.exeのパス書いて、デバッグ実行すると、 IEが起動して自動的にアタッチしてくれる。 それはいいんだが、なぜかそうやって起動するとIE7+Vistaでの保護モードが無効になってしまう。 その状態でインターネットオプション見ても保護モードにチェックは入ってるのに。 普通にIE起動したら保護モード。 誰か理由説明できる人いる?
525 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 14:12:10 ] その状態で2ch見ても保護モードにならんの?
526 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 03:01:30 ] IOleCommandTargetとかIDocHostUIHandler辺りを使ってIEコンポのカスタマイズやってるんだが、 どうもうまくいかないのでレジストリのキー検索してみた。 するとIDocHostUIHandlerが発見できない。(BD3F23C0-D43E-11CF-893B-00AA00BDCE1A) OleViewでみてもやっぱりない。 これはウチのレジストリが壊れてる?それともこれが普通で他に原因がある? PC2台(Pro,Home)とも同じ状況なんで判断が付かない。 環境は XP SP2(一台はSP1から更新、もう一台はSP2デフォ) / IE7(6から更新) / .NET2.0 参考サイトはこの辺 ttp://msdn.microsoft.com/en-us/library/aa770041(VS.85).aspx
527 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 03:54:47 ] Three interfaces are at the heart of WebBrowser Control UI customization: IDocHostUIHandler, IDocHostUIHandler2, and IDocHostShowUI. These are interfaces that you implement in your application when you want to modify the WebBrowser Control.
528 名前:もう見てないよな? [2008/11/14(金) 23:05:07 ] >>523 > マジっすか…… > 正規表現だとboost辺りかな…… > VCならRegExpをCOM経由で使えば正規表現がつかえるらしい VCで正規表現 (要IE5.5以上) ttp://page.freett.com/mortes/prog/regexp.htm 「IE5.5以上」なんで条件を満たしていないWindowなんてあるの?
529 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:33:38 ] 素のWindows2000
530 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:48:42 ] RegExpはVBScript 5.0だろ IE5.0だろ 素のWindows2000だろ
531 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 21:27:32 ] 鬼車使っとけ
532 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:06:31 ] IDocHostUIHandlerを実装したクラスを適用させるにはどうすりゃいいんでしょうか? NavigateComplete2でSetUIHandlerはイクないみたいなことが色々書いてありますし、 それでは初めてのNavigateの時にはXPスタイルを適用できないみたいですし・・・ GWL_USERDATAをGetWindowLongでIAxWinHostWindowを取得してSetExternalUIHandlerでも出来ないことも無いですが、 D&Dが使えなくなるっぽいなのでこちらもだめみたいです
533 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:55:09 ] MFCのソースでも見ればいいんじゃね? Platform SDKに入ってなかったか。
534 名前:532 mailto:sage [2008/11/20(木) 11:41:01 ] MFCの環境が無いので見れません ごめんなさい
535 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:57:27 ] >>534 >>533 は「無償配布されてるPlatform SDKを入れてみろ」って言ってるんだと。
536 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:06:41 ] >>535 Platform SDKは既に入れてありますが、MFCのソースはどこにありますでしょうか? mfcディレクトリにはヘッダしか見受けられませんが・・・
537 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 13:02:22 ] src\mfcにないならないんじゃない?
538 名前:532 mailto:sage [2008/11/20(木) 13:23:30 ] src\mfcを検索してみましたが、IDocHostUIHandlerの記述はないようです 本題に戻って、お願いします
539 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 16:57:23 ] >>538 ttp://msdn.microsoft.com/en-us/library/aa770041.aspx
540 名前:532 mailto:sage [2008/11/20(木) 17:24:56 ] >>539 こんな方法で出来るとは・・・ 神様ありがとうございます
541 名前:sdaf mailto:asdf [2008/11/26(水) 16:16:56 ] adsf
542 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 18:22:37 ] ie7でShellWindowsの中からactiveなものを見つけることはできないっすか?
543 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:33:39 ] MFC(VC++6.0)のCHtmlViewで、右スクロールバーの「現在のスクロール位置」の取得 方法が分かる方はいらっしゃいますでしょうか? いろいろ調べて、試してみたりしたのですが、どうしてもうまくいかないのです…
544 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 19:13:07 ] VS2008 MFCにてIEコンポーネントを使用して自動巡回ソフトを作りたいと 考えています。 IEコンポで指定のページまでは簡単に表示出来たのですが、 フォームに文字(ID/PASS)を入力したり、ボタンをクリックしたりする のはどうやったらいいのでしょうか? 参考になるソースなどあるサイトなどあったら教えて下さい。
545 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:12:13 ] まあIHTMLDocument*あたりからDOM経由すればそういうことはできるが、 普通はそういう面倒なことはせずに直接自分でフォーム送信時に送られるリクエストを作成するだろうな。
546 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:22:51 ] >>517 亀だが「AtlAxWin」の部分をVSのVerにあわせてみては? 参考URL ttp://fssblog.blog50.fc2.com/blog-entry-219.html
547 名前:デフォルトの名無しさん [2009/01/31(土) 11:54:03 ] <form 〜> <input type="button" value="test" onClick="gotoPage();"> </form> 上の例でボタンを押した時、gotoPage(); を実行させたいんですが 初心者なんでよくわかりません pCollection = pDocument->getElementsByName( _bstr_t( L"namae" ) ); MSHTML::IHTMLFormElementPtr pForm( pCollection->item() ); pForm->submit(); だと、gotoPage(); が実行されないみたいです 誰か教えて下さい。・゚・(つ_⊂)・゚・。ウェーン
548 名前:デフォルトの名無しさん [2009/01/31(土) 16:35:51 ] var vHtmlDocument: IHtmlDocument2; begin vHtmlDocument := EmbeddedWB1.Document as IHtmlDocument2; vHtmlDocument.parentWindow.execScript( 'var select = document.getElementById("test");input.onClic();', 'javascript'); end; デルファイだとこんなの C#わかんない 本当は IHTMLDocument4; IHTMLEventObj; IHTMLDocument2; IHTMLElementCollection; IHTMLElement3; 上記のインターフェース使って やる・・・・
549 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:55:20 ] >>546 >>517 じゃないけど助かりました!
550 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:31:52 ] そうか
551 名前:デフォルトの名無しさん [2009/03/22(日) 02:24:55 ] IE8になって、IEコンポーネントを使って値を設定するときのセキュリティの変更があったようです INPUT TYPE="FILE" に設定するのに今までフォーカスを当ててからSendKeyを使っていたのですが、どうやら駄目になった模様・・・ 解決方法はあるのでしょうか
552 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:29:34 ] 知らんけどタイミングが合ってないだけじゃないのか?
553 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 10:21:37 ] 能無しはけーん
554 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:46:49 ] それはそれは。。。がんばって!