1 名前:デフォルトの名無しさん [2006/04/16(日) 21:08:42 ] ===================================== IEコンポーネントを利用したブラウザのプログラミングに関する情報の交換及び再 利用を目的とした総合情報スレッドです。 ===================================== 最近IEコンポーネントを利用してブラウザを作るプログラマが増えてきました。こ れから自作してみようという人も多いでしょう。コンポーネントを貼り付けるだけ なら誰でも出来ますが複雑な制御を行うにはそれなりの経験や知識が要るようです。 私自身が知りたいのも山々ですが、似たような質問が分散するのを避けるためにも 統一しましょう。ブラウザ作者、COM に精通した方大歓迎です。もちろん公開した くない "禁断のテク" もあると思いますが、そこは各人の判断ということでお願い します。 ※ 開発言語は問わないことにしますので質問するときはその辺を踏まえてお願いし ます。 (以上、前スレより) IEコンポーネントを使い倒すスレ pc5.2ch.net/test/read.cgi/tech/982930049/ かなり前のスレですが続編を立てました。
453 名前:451 mailto:sage [2008/02/09(土) 02:27:55 ] >>452 すみません 困っています もし よろしければ教えていただけないでしょうか?
454 名前:デフォルトの名無しさん [2008/02/09(土) 23:24:16 ] MFCでURLジャンプ時のスクリプトエラー非表示はどうすればいいですか? IOleCommandTarget::Execで OLECMDID_SHOWSCRIPTERRORを使うのでしたら、 どのように使うのか教えていただきたいです。 【関連事項】 AtlhostEx.h ScriptErrorCommandTargetImpl.h DialogKiller.h
455 名前:デフォルトの名無しさん mailto:age [2008/02/10(日) 00:54:23 ] 今日のメニューについて zoomtv.atspace.com/?G&1zbuh@HiSpeedVision
456 名前:デフォルトの名無しさん [2008/02/12(火) 13:40:22 ] CreateWindow("AtlAxWin", "Shell.Explorer.2"・・・ としたときにsubmitやクリックできますか
457 名前:デフォルトの名無しさん [2008/02/27(水) 13:53:42 ] IE7になってマウスの真ん中ボタンで新しいウインドウで 開くようになったんですが、IEコンポーネントを使った あぷりでは、これは自分で書くしかないんでしょうか? それとも簡単に有効にする方法があるんですか? 知っている方いましたら教えてください。
458 名前:デフォルトの名無しさん [2008/02/27(水) 14:41:58 ] IEはIEコンポーネントを使ってるだけで、 真ん中ボタンクリックで新規ウィンドウはIEに実装されただけのもの。 IEコンポーネント自体にそういう機能があるわけではない。
459 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:48:16 ] >>458 ありがとう。 ということは自分でやるしかないんですね。 かなり大変そうですけど・・
460 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:53:19 ] >>459 おいおい、ボタン押してウィンドウ開くなんて大した手間じゃないだろう
461 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 17:46:36 ] >>456 AtlAxGetControl AtlAxGetHost >>460 新しいウィンドウで開くとなると結構処理が必要じゃない?
462 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 11:28:49 ] 大抵のダブブラウザは実装してる
463 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:18:40 ] ATL使わずにIWebBrowser2のイベントを取得したいんだけど、 どういうコード書けばいいのか参考になるサイトとかないですか 探し方が悪いのかATLなコードしか見つからないんです。
464 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:27:15 ] そんな事できるのか・・・
465 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 05:01:32 ] >>463 DWebBrowserEvents2のこと? だったら普通にOLEコントロール扱うようにすればいけるんじゃね? まあMFCとかATLとか使わずにやろうとすると死ぬほど面倒らしいが。
466 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:19:08 ] >>465 うん、DWebBrowserEvents2。 WindowsMobile版のIEコンポーネントを使ってるんだけど、 ATLでの実装がコンパイル通らなくて、 ATLなしでの実装にするか・・・?ってとこにたどり着いたとこ。 死ぬほど面倒ならATLが通る方法調べるほうが楽かなぁ。。
467 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:20:39 ] コンパイラはなに?
468 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:29:49 ] VS2005Pro、C++でやってる
469 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:03:29 ] コンパイルエラーの内容を書いた方がいいのでは。 あと接続ポイント周りをちゃんと理解すると光が見えるかも。
470 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:10:11 ] >>466 Essential COMに載ってるよ。ネストクラスしたりとかなり面倒だったけど ATLなし(Win32SDKのみ)でイベント取得までは確認できた。
471 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:50:34 ] VC++あるなら、CHtmlViewのソースでも見るとか。CHtmlViewが使えるならそれ使うに越したことはないと思うが。
472 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 02:59:40 ] IEコンポーネントのJavaScriptを一括で 無効にする方法ってありますか?
473 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:50:05 ] あるんじゃないの? 俺はやったことないけど、使っているブラウザ (Donut RAPT)が ボタン1つでオンオフできる機能を持っている。
474 名前:デフォルトの名無しさん [2008/04/24(木) 20:30:33 ] 表示してるページで右クリックメニューに追加した「irvineにすべてのURLを送る」みたいのを 自動で実行するのはどうしたらできますか?
475 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:08:05 ] MFCで組んでるんですが、いろんなサイトを見ていくと使用メモリが増える一方。 メモリリークしていると思ったほうがいいのでしょうか? それとも履歴蓄積によるものと考えてしまっていいのでしょうか?
476 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:28:31 ] >>475 メモリリークっていうか、開放し忘れじゃね? よくあるみたいだよ。
477 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:49:52 ] IEコンポーネントを使うとそうなるって問題もあったはず。 一旦アプリを最小化すると開放されたようになる。 本当にリークしてるのか、本当に開放されてるのか、分からないけどね。
478 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 12:15:51 ] >>477 最小化すると減るのはワーキングセットの量。
479 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:38:59 ] タスクマネージャーとかで見る使用メモリが増えていくからといって メモリリークしてるとは限らない。 ttp://kkkon.hp.infoseek.co.jp/tips/MFC/MemoryLeak.shtml この辺参考にしてみるといいかもね。
480 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:50:12 ] なんかFlash関係が動かなかったりするね。
481 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:30:41 ] IEコンポーネントでページを開くときに、ソケットで別の端末にページのURLを送って 同じページを開かせるようなプログラムを作ったんですけど CComQIPtr<IWebBrowser2> pWB2 pWB2->Navigate2(メッセージで送られたURL) としてURLにジャンプしようとすると、 「"URL"が見つかりません。パスまたはインターネットアドレスが正しいかどうかを確認してください。」 というメッセージボックスが表示され、メッセージ受信側のクライアントはURLにジャンプできません。 IEコンポーネントで表示させた、そのURLのハイパーリンクを直接クリックした時や 直接IEを起動してアドレス直打ちをした場合、正しくページに飛ぶことが出来ました。 また、メッセージ受信側がIE7を入れている場合ではジャンプできない現象が起きましたが IE6を入れているPCで試したところ、メッセージ受信側もジャンプすることが出来ました。 IE7になってからNavigate2周りで何か変更があったのでしょうか。 おとなしくIE6に戻るしかありませんか?
482 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 02:27:06 ] IEコンポーネントでHTML内に記述されたJavascriptの関数を実行したいのですが、 可能でしょうか?HTMLは自分で用意したものです。
483 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:27:54 ] >>482 できるよ。 スクリプトを動的に追加することができるから追加したコードで静的なコードを実行すればいい。 HTMLを自分で用意するんだったらIEコンポーネントでやる用途が想像できないけど?
484 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 04:39:22 ] >>483 homepage3.nifty.com/LILILIN/HOWTO/activex_javascript.htm このページの情報を参考にして実装する事ができました。 では逆にHTML側から、ブラウザ(アプリケーション)の関数を実行する事は可能でしょうか? さすがに無理ですかね、それは・・・
485 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 06:30:53 ] >>484 window.external経由ならわりと楽勝で。
486 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:43:36 ] IE拡張(BrowserObjectHelper)からマイドキュメントフォルダにファイル書き込んでるんだけど IE保護モードがじゃまして書き込めねぇ・・・ いくつかMSのサイト読んでレジストリいじったりしたが、相変わらず駄目だ 誰かやり方おしえて。
487 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:21:05 ] アウトプロセスのCOMサーバでも作ってデータ送って書き込ませれば?
488 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:31:02 ] それは最後の手にしたいな。 www.microsoft.com/japan/msdn/ie/general/protectedmode.aspx 書き込み時に、ブローカープロセスの昇格ってのが出るようにできるっぽいけど、 ここにあるようにレジストリに書いたがうまくいかん。
489 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:37:46 ] ああ、COMサーバーのCLSIDを登録するってことなんだな、これは・・・ うう、めんどくせー
490 名前:デフォルトの名無しさん [2008/05/23(金) 14:42:17 ] 「ページ内検索」がでねーよ 誰か知ってる? 失敗例: ::SendMessage(browser.GetSafeHwnd(), WM_KEYDOWN, VK_CONTROL, 0); ::SendMessage(browser.GetSafeHwnd(), WM_KEYDOWN, VK_F, 0); ::SendMessage(browser.GetSafeHwnd(), WM_KEYUP, VK_F, 0); ::SendMessage(browser.GetSafeHwnd(), WM_KEYUP, VK_CONTROL, 0);
491 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:58:46 ] >>490 HTMLID_FINDでググれ support.microsoft.com/?scid=kb%3Ben-us%3B175513
492 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:44:37 ] ダイアログに WebBrowser を 貼り付けて 表示しています。 その ページ内で window.close() を 呼んだら ダイアログ自体を終了するようにしたいのですが、 WebBrowserEvents のイベントを取得するような方法しかないのでしょうか?
493 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:33:24 ] ローカルにある js ファイル ページ表示後に実行したいので、 DWebBrowserEvents の Document Complete 後に Document に script タグを追加しようとしているのですが、 追加されません。 このやり方だとだめなのでしょうか? どこかにサンプルがあったりしますか?
494 名前:デフォルトの名無しさん [2008/06/13(金) 19:11:21 ] Win32APIすれから来ました HTMLを解析したいのでIHTMLDocument2を使おうと思っています CComPtr<IHTMLDocument2> aDoc; aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT); aDoc->put_URL(CComBSTR("~ ")); //URLの読み込み(のつもり) aDoc->get_images() この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。 まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。 コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか? #イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
495 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 19:23:39 ] >>494 ここにサンプルがあったよ ttp://d.hatena.ne.jp/seraphy/20061124#p3
496 名前:デフォルトの名無しさん [2008/07/23(水) 00:24:40 ] IWebBrowser2から作ったIEコンポーネントで、フラッシュゲームのページでゲームのキー入力が 効きません助けてください! IOleInPlaceActiveObject::TranslateAcceleratorもメッセージループ内に入っています!
497 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 09:21:35 ] そういや俺もニコニコとかのフラッシュ使ったページでキー入力効かなかったことがあったな。 どうやって解決したか思い出したら書き込むよ。
498 名前:デフォルトの名無しさん [2008/07/23(水) 11:55:03 ] 質問です。 戻る、進むことが出来るか否かを判断するにはどうすればいいんですか? IWebBrower2のメソッドにそれらしき関数が見当たらなかったんだけど
499 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 20:05:14 ] DWebBrowserEvents2のCommandStateChangeかなにか
500 名前:デフォルトの名無しさん [2008/07/24(木) 18:42:51 ] >>499 遅レスですがありがとうございました!
501 名前:デフォルトの名無しさん [2008/07/24(木) 20:13:24 ] VC+ATLでタブブラウザっぽいものを作っています。 DWebBrowserEvents2のDISPID_NEWWINDOW2イベントで、 新しく開く遷移先のアドレスを知るためにはどうしたらいいんですか? OnNewWindow2のハンドラでIEが立ち上がるのをキャンセルするまでは分かったんで巣が。。 Donutのソースみたけどいまいち分かりませんでした・・・
502 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:21:06 ] NewWindow3にしちゃうのは?
503 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:53:44 ] WSH/VBScriptからNewWindow?でcancelできない?
504 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:08:34 ] IE6が入っているPCでは問題なく動作しているプログラムが IE7が入っているPCで正しい動作をしてくれません。 ttp://www.nitoyon.com/vc/tips/ie_component.htm このサイトを参考にC++(VC++)でIEコンポーネントを呼び出しています。 調べてみると、どうやらIE7でNavigate2を呼び出すと 正しくページに移動できないみたいですね。 色々調べてみたんですけど、VC++でのIEコンポーネントの使用で IE7に対応させるような方法が分かりません。 IE7環境でVC++からIEコンポーネントを呼び出して 正しくページ移動できるようなプログラムは可能でしょうか。
505 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:49:59 ] しらんけど↓でなんとかならんかのお Microsoft Web Browserコントロールのセキュリティを制御する:CodeZine
506 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:40:03 ] ページから移動するんじゃなくて、ページごとに作り直すといいんじゃない?
507 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 22:13:09 ] >>504 AtlAxCreateControlExを使用した方法だとうまくいきますよ。
508 名前:507 mailto:sage [2008/08/27(水) 22:19:03 ] >>504 の詳細を聞かずにレスしたので、思っているのとは違う結果になるかもしれない。 補足すると、タブを使用しない。キオスク端末見たいなことをやりたければ、 AtlAxCreateControlExを使用した方法で作れます。
509 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 16:14:38 ] IE7でアクティブなタブがshellwindowsのどれか、わかりますか?
510 名前:デフォルトの名無しさん [2008/09/14(日) 12:25:13 ] VC6 + MFCで開発してます。 IDispatchExの利用方法で分からない事があります。 IEコンポーネントのGetDocument()で得られるIHTMLDocument2をQIして IHTMLDocumentを取得しました。 さらに、get_Script()で得られるIDispatchをQIし、IDispatchExを 取得しました。 こうして得られたIDispatchExを利用して、HTMLのオブジェクトにアクセス 可能な事を確認しました。しかし、JavaScriptで window.hoge = 1; foo = 2; と書いてある場合、hogeにはアクセス出来ますが、fooにはアクセスできません。 windowオブジェクトに明示的に代入したオブジェクトにしかアクセスできない ようです。 どうすれば、fooにアクセスできるでしょうか。
511 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:02:52 ] >>510 厳密に調査したわけではないが、アクセスタイミングによるものだと思う。 windowオブジェクトは、初期状態で存在しているため、 直にアクセスできるのだと思われる。 全てのイベントを拾って、ポーリングすればアクセスできるタイミングが分かるはず。 試しに html側 head内にてvar i=1000を定義、body onloadにて、 iを初期値と比較して結果を出す関数を作成。 全てのイベントを拾って、GetDispID( 変数名, fdexNameCaseInsensitive, &dispID ) を実行して、DISPID_UNKNOWN != dispIDが成立したら関数InvokeExにて値を変更したら onload関数の結果が変わるのを確認した。
512 名前:デフォルトの名無しさん [2008/09/26(金) 12:43:09 ] javaのwin32oleでブラウザ作ってるんですが 表示中のHTMLの任意のタグの内容を取る方法って何ですかね? 例えばクリック→srcElement取得ってどうやったらいいのか・・・。
513 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 01:17:13 ] win32oleを使用したことが無いので詳しくは分からないが、IHTMLDocument2のI/Fが取れれば、 メンバ関数elementFromPointでできると思う。
514 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:09:26 ] IE7 + Vista + 保護モードだと、BHOからファイル書き込みが 所定のパスにできないですよね。 これを解決しようと奮起してます。 ファイル書き込み部分をCOM化しようとしてるんですが、 どうにもうまくいきません。 msdn.microsoft.com/en-us/library/bb250462.aspx ここを読んだんですけど、 If your extension launches a COM server that is not registered in HKEY_CLASSES_ROOT, gets dynamically registered through COM and launched via CoCreateInstance, add a REG_SZ value called IID containing the CLSID of the COM server, add the following setting to your policy. IID (REG_SZ) contains the CLSID of your extension. これって、BHOのCOMコンポーネントのCLSIDを レジストリのElevationPolicy以下に登録するんじゃないんですかね。 ファイル書き込みのCOMを生成した瞬間にダイアログが出ることを期待してるんですが、 ぜんぜんそうなりません。
515 名前:514 mailto:sage [2008/09/27(土) 22:11:01 ] ファイル書き込みのCOMはBHOと同じDLLに含まれてます。 ファイル書き込みのCOMを別のEXEサーバーにおいて、 BHOから呼び出したんですが、COM生成はできても、 ちょっとするとEXEサーバーから勝手に切断されてしまいます。 どうしていいのか、さっぱりわかりません・・・
516 名前:512 mailto:sage [2008/09/30(火) 09:54:56 ] >>513 ありがとうございます やってみます
517 名前:hiro [2008/10/08(水) 14:47:16 ] こんにちは。 www.nitoyon.com/vc/tips/ie_component.htm のサンプルコードを落として VS.net 2003 Standardで 開いてビルド実行、アドレスバーに打ち込んでGOを押しても メッセージが出て(atlcomcli.h Line148)で 実行時にエラーになります。 comは初心者でよく分かりません。 どなたか対処法をご存知ないでしょうか? どうかよろしくお願いします。
518 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 17:40:03 ] >>517 そこの「VC++.NETでの注意点」ってとこ読んだか?
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 ] 能無しはけーん