1 名前:デフォルトの名無しさん [2006/04/16(日) 21:08:42 ] ===================================== IEコンポーネントを利用したブラウザのプログラミングに関する情報の交換及び再 利用を目的とした総合情報スレッドです。 ===================================== 最近IEコンポーネントを利用してブラウザを作るプログラマが増えてきました。こ れから自作してみようという人も多いでしょう。コンポーネントを貼り付けるだけ なら誰でも出来ますが複雑な制御を行うにはそれなりの経験や知識が要るようです。 私自身が知りたいのも山々ですが、似たような質問が分散するのを避けるためにも 統一しましょう。ブラウザ作者、COM に精通した方大歓迎です。もちろん公開した くない "禁断のテク" もあると思いますが、そこは各人の判断ということでお願い します。 ※ 開発言語は問わないことにしますので質問するときはその辺を踏まえてお願いし ます。 (以上、前スレより) IEコンポーネントを使い倒すスレ pc5.2ch.net/test/read.cgi/tech/982930049/ かなり前のスレですが続編を立てました。
176 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 06:12:27 ] 表示したページのWidthやHeightを調べて、スクロールバーが出ないように Windowのサイズを変更したいのですが、WidthやHeightがわかりません。 どのように調べればよいですか?
177 名前:デフォルトの名無しさん [2006/12/10(日) 00:28:13 ] IHTMLDocument2か何かで取れないっけか
178 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 04:02:54 ] 取れないよ。自動でレンダリングするからWidth,Heighなんて取っても意味ないんじゃないのかね?
179 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 11:38:52 ] >>176 ここはどうすんの? worlds-highest-website.com/
180 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 11:51:36 ] 調べたらIWebBrowser2で取ることは出来るっぽいが、>>178 の通りかも知れぬ
181 名前:デフォルトの名無しさん [2006/12/21(木) 01:20:17 ] シェルをC#でいじくってるんですが、 BeforeNavigate2の段階で、 移動しようとしてるフォルダのpIDL取得する方法はないですか? URLじゃなくて。 NavigateCompleteすればShellGetPathで取れるんですが
182 名前:124 mailto:sage [2006/12/26(火) 01:21:39 ] お。こんなスレ出来てたのか・・・ では早速。 Internet Explorer_Hiddenウィンドウの役割と IEのウィンドウで使われる独自メッセージについて調べているのですが、 うまく探せません。 いい情報を見かけた方、お教え下さい。
183 名前:182 mailto:sage [2006/12/26(火) 02:33:11 ] ↑ 124は間違い
184 名前:デフォルトの名無しさん [2007/01/08(月) 19:04:39 ] BeforeNavigate2でPOSTDATA横取りしたいんだけど、ファイルアップロードのタグが あるときにデータが途中で切れちゃうよママン。 まーPostData中に(っていうかアップロードしたファイル中に)NULLが入ってるんだろうけど 正確なPostDataのlengthって取れないのかな?
185 名前:デフォルトの名無しさん [2007/01/08(月) 19:47:02 ] >184 自己解決、というか、KnownBUGだったよ。 support.microsoft.com/kb/890177 GET/POSTのデータ横取用プロキシ作って組み込むか。
186 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 22:32:30 ] IE7だと解決してるのかねぇ
187 名前:デフォルトの名無しさん [2007/01/10(水) 20:07:45 ] 今のさっきまでこのスレ過去スレと思ってた現役だったんですね よろしくオナガイシマス static CComQIPtr< IWebBrowser2 > pWB2; こんな書き方良く見かけるのですがこれはpWB2にIWebBrowser2のポインタを 設定すると考えてよろしか? COMコンポ全然わかんないんでスマソ
188 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 20:08:35 ] スマソあげてもうた
189 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 21:35:02 ] Template
190 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 21:42:23 ] ATL
191 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 22:29:33 ] 187です VS2005なのですが、コンパイラの設定でATLを使用するに設定しないとだめ? それでpWB2の値の意味は何なの?けっきょく
192 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 22:56:31 ] >>191 CComQIPtr< IWebBrowser2 > 型の変数を宣言しただけで、値は設定していない。 C++の基本とVC のCOM向け拡張の両方とが解っていないと、 C++でCOMやるのは難しいと思う。
193 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 23:34:43 ] >>192 サンクス COMとかなるべく関わりたくなかったんだけど、やらなきゃいけない羽目になって 苦しんでいます、pWB2の型は何型になるのでしょうか?
194 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 23:57:13 ] スマートポインタの概念を理解すべし。auto_ptrでぐぐると良い。 CComPtrも基本はauto_ptrと同じだ。要するに解放忘れを防ぐための仕組み。
195 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 00:09:06 ] >>193 pWB2の型はCComQIPtr< IWebBrowser2 >型と何度も(r
196 名前:デフォルトの名無しさん [2007/01/12(金) 01:25:36 ] IEコンポーネントを使っても、 開いてるページに埋まってるFrameの中を見ることは出来ないんですか?
197 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 01:37:57 ] セキュリティに関わるからね
198 名前:デフォルトの名無しさん [2007/01/12(金) 02:02:29 ] やっぱりそうですか。 ありがとうございました。
199 名前:デフォルトの名無しさん [2007/01/12(金) 11:54:54 ] C#でWebBrowserControl経由で使ってると、 IEというかInternet Optionでの設定は反映されるんですが、 独自のProxy指定は出来ないのですか?
200 名前:デフォルトの名無しさん [2007/01/16(火) 13:47:20 ] C#でSHDocVw.dll参照に追加してWebBrowserClass使うとき、 32bit環境だとHWNDプロパティがInt32で返ってくるんだけど、 これって64bitだとどうなってるの? IntPtrで返ってくる? それともInt64?
201 名前:デフォルトの名無しさん [2007/01/21(日) 09:06:26 ] なんかこんなの見つけた。 ttp://www.hannan-u.ac.jp/~ichi/04/hasegawa/zeni.html 今時の卒論ってこんな程度なの?
202 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 09:11:01 ] 学校によるんじゃない?
203 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 11:50:20 ] 卒論wardファイルw
204 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 11:53:39 ] スクリーンショットがDonut RAPTっぽく見えるんだが
205 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 15:01:08 ] 読んでしまった しかしながら現状としては@AB個々のプログラムの方向性は出来上がってきたものの、 個々を関連付けるプログラムの作成には至っておらず、前述されている「タブブラウザ」への 組み込み、動作テスト等もまだ出来ていない状態である。最終的には独立したプログラムと して完成させ、デスクトップ上で起動できる状態を目指していく状態にある。 何もしてねーwwwwww
206 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:14:04 ] PCに縁遠い年寄り教授をだまくらかすにはこれで十分なんだろ
207 名前:デフォルトの名無しさん [2007/01/22(月) 00:27:18 ] とってもw ard! 既に社会人で業務としての資料作りも慣れてる俺が言うのもなんだが、 内緒だけどあの程度プレゼン資料なら、前日の夕方から慌てて徹夜でデッチあげたりしてる。
208 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:40:35 ] >>207 そうやってでっち上げたんじゃないのw
209 名前:デフォルトの名無しさん [2007/01/22(月) 00:41:28 ] そんな卒論って・・・・・ まぁありかなw
210 名前:デフォルトの名無しさん [2007/01/22(月) 00:50:16 ] 大学がアレなの? それとも学部がヲイなのか? 当然ゼミはヌルポなんだけど、学生はもっとガッされるべき。
211 名前:デフォルトの名無しさん [2007/01/22(月) 01:39:03 ] 阪南大学だってさ。 どこか分からん。国立じゃなさそうだ
212 名前:デフォルトの名無しさん [2007/01/22(月) 01:41:46 ] 4年も大学で学んであの程度ですか、そうですか。
213 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 02:13:40 ] 今日からここは自分の卒論を晒すスレになりました 最初のかたどうぞ ↓
214 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 02:56:21 ] freenetみたいだけど2chネラー向きのファイル共有ソフトの提案
215 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 04:17:50 ] タイーホw
216 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 04:19:11 ] IEコンポーネントの使い方をやさしく指導してくれるサイトや本ってあります?
217 名前:デフォルトの名無しさん [2007/01/22(月) 08:23:35 ] 以下のテンプレに従って質問してください。 【性別】 男/女 【年齢】 実年齢 【居住地】 現在住んでいる所を行政区程度まで 【職業】 ありのままに 【身長】 cm表記で 【体重】 kg表記で正直に 【スリーサイズ】 バスト・ウエスト・ヒップをcm表記で。 【画像URL】 全身ならびに顔写真を100万画素クラスで。 【メールアドレス】 携帯電話もしくは、プロバイダ等のアドレスを。
218 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:01:54 ] 相当偏差値低いらしい阪南大学。 学生の質が垣間見えた。
219 名前:デフォルトの名無しさん [2007/01/25(木) 02:20:31 ] はいはい、次の卒論どうぞ。
220 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 18:55:29 ] IHTMLWindow2::execScript で外部からjavascriptを実行できることは わかったのですが、オブジェクト型を引数にとるjavascript関数に 引数を渡して実行することは不可能なのでしょうか (例えばVCから IUnknown* の情報を渡したいとか)。
221 名前:デフォルトの名無しさん [2007/01/26(金) 20:40:08 ] >>199 今更だけどなんか見つけたよ。 isawseashell.blogspot.com/2007/01/via-proxy.html
222 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:14:46 ] >>199 私も>>221 のリンク先とと同じくUrlMkSetSessionOptionに INTERNET_OPTION_PROXYを渡して実現してた。 問題なく動作するはず。
223 名前:デフォルトの名無しさん [2007/01/27(土) 20:53:20 ] System.Windows.Forms.Webbrowser を使ってる者ですが、 これを使って表示している場所から、別のリンク先をクリックした際に、 何を送信しているか補足する場所ってありますでしょうか? Navigatingメソッドでは何もつかめなさそうですし。 画面上のHTMLソースだけではなく、HTMLヘッダーだけではなく、ファイルに書き出していない メモリ上のクッキーの値もみたいのですが 知ってる方、よろしくお願いします。 環境 XP64 VS2005 C#
224 名前:デフォルトの名無しさん [2007/02/02(金) 22:55:44 ] すみません javaScriptでIEコンポ内の ページを閉じるのを感知したいのですが なにか方法あります?
225 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:03:59 ] フォースを使え
226 名前:デフォルトの名無しさん [2007/02/08(木) 19:13:13 ] htmlをブラウザに表示する前段階でhtmlを改変したいんです。 イメージとしてはプロキシサーバとかポップアップブロックみたいな感じ。 つまり間に一つ噛ましたいわけです。 どうしたらいいか教えてください。環境VC++
227 名前:デフォルトの名無しさん [2007/02/08(木) 19:30:14 ] >>226 Proxyを間に入れれば?
228 名前:デフォルトの名無しさん [2007/02/08(木) 20:01:07 ] >>227 そうしてみます。どうもでした。
229 名前:デフォルトの名無しさん [2007/02/08(木) 21:38:06 ] 自プロセス・別スレッドでProxyって感じの実装を今試してるよ。 C#だけど。
230 名前:デフォルトの名無しさん [2007/02/08(木) 23:02:14 ] WebBrowserClassとかHTMLDocumentClassとかで IEの表示文字サイズがなんになってるかとか 調べられないかな・・ どうやったら 調べられるか誰か教えてくれ・・・・
231 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 23:15:05 ] >>230 いわゆる最大〜最小の文字サイズ? それは初歩だと思うけど、「ExecWB OLECMDID_ZOOM」辺りでググれ。
232 名前:デフォルトの名無しさん [2007/02/09(金) 01:14:24 ] 人の卒論って面白いね^^
233 名前:デフォルトの名無しさん [2007/02/16(金) 14:31:51 ] >>232 面白いってか、あれって卒論ってレベルじゃねーぞ。 なんか講義一回分の資料って感じじゃね? 街のパソコン教室って感じで、大学でやられても困るけど。
234 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 14:05:15 ] スクリプトエラーのダイアログを非表示にしたいのですが、 Sleipnirのこれ www.sleipnir-wiki.jp/original_index.php?FAQ#rbe2449f はどういう実装になっているのでしょうか?
235 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 19:36:43 ] IOleCommandTarget::ExecでOLECMDID_SHOWSCRIPTERRORを握りつぶす Sleipnirの実装は知らんが、DonutRAPTのソースを落としてきて AtlhostEx.h,ScriptErrorCommandTargetImpl.h,DialogKiller.h辺りを眺めてみればいいと思う。 対象言語がC++以外の場合は知らん。
236 名前:234 mailto:sage [2007/02/21(水) 21:27:42 ] >>235 今からダウンしてくる。 thx!
237 名前:デフォルトの名無しさん [2007/03/15(木) 18:12:34 ] IEオブジェクトを使用しあるページを表示し、 ボタンを押して、次のページに移動するプログラムを書いております。 dim wbrowser as object Set wBrowser = CreateObject("InternetExplorer.Application") wBrowser.all.Item(11).Click ここで、 メッセージボックスが表示され「はい・キャンセル」を選択しなければなりません エンターをSendkeysでよいのですが sendkeys "{Enter}" と記載しても、その前にIEオブジェクトに制御が移動するようで、できません 何方か解決策がありましたらお教え下しさい
238 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 06:03:52 ] プロセスもういっこ作ってそこで制御
239 名前:237 mailto:sage [2007/03/17(土) 13:10:46 ] >>238 237は 某掲示板で非同期でよる方法で解決しました。 wBrowser.Document.Script.setTimeout "javascript:document.all.item(11).click()",1000 >プロセスもういっこ作ってそこで制御 そのやり方がいまいちよくわからないので・・・・ リンクが、下記のようにJavaで_blankの指定があるようで勝手にIEが表示されます <a href="javascript:void(0);" onclick="doOpen5('hogehoge')"> これをIEオブジェクトで何とかしたいのですが、よろしければお教えくださいm(__)m
240 名前:IE7入手先 mailto:hage [2007/03/17(土) 16:46:25 ] MSN版IE7 promotion.msn.co.jp/ie7/ download.msn.co.jp/download.aspx/sid=I7bzPs2A/ie7setup.exe Yahoo版IE7 recommend.yahoo.co.jp/ie7/campaign/index.html recommend.yahoo.co.jp/ie7/index.html a109.g.akamai.net/7/109/31749/000/downloads.yahoo.co.jp/browser/ie/7/IE7Setup.exe Google版IE7 www.google.com/toolbar/ie7/intl/ja/ dl.google.com/toolbar/data/ie7/IE7Setup_G_JP.exe
241 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:04:58 ] テレビ番組の番組表なんですけど その日によってURLが変わるんですけど これをお気に入りにできませんか? スクリプトのようなお気に入りってできます? ローカルHTMLを経由してやるのは簡単ですが ちょっと醜いやり方のような・・・
242 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 02:13:04 ] IEコンポーネントに関係あるかなぁそれ。 日付に合わせてURLを作成して移動するbookmarklet作ればいいんでない?
243 名前:241 mailto:sage [2007/03/25(日) 09:45:27 ] THX! javascript:ってやつですね? IE特有の機能で、多分スクリプトに関係しているので ここか、と思いました。 普通のHTML内のスクリプトとはちょっと違いますし・・・ (上述のローカルHTMLならそうかも) ちなみにここってBHOとかは作らないんですか? どうもありがとうございました。
244 名前:243 mailto:sage [2007/03/31(土) 00:23:07 ] ええともはやスレ違いなので質問という訳ではなく 独り言なのですが・・・ ブックマークレットってローカルファイルを表示中のIEからは スクリプトブロックされて動かないみたいですね・・・ (XP SP2以前は動いたような?) というかこういうのってどのスレに行けばいいのだろうか? WSHでもHTAでもHTMLでもないし・・・
245 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 00:28:43 ] >>244 Web制作板だっけ? そんな板があったハズ。
246 名前:244 mailto:sage [2007/03/31(土) 16:48:21 ] すいません・・・何度も・・・ 以前にもWeb制作板内を探したんですが やはりWebサイトを作る、という方向性で IE依存のスクリプトやIE固有の機能に関しては あまり積極的ではないような・・・? スクリプトの場合、こことかはいいのかな、とも思うんですが・・・ ttp://pc11.2ch.net/test/read.cgi/hp/1070611524/ どうも度々すみませんでした
247 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:44:26 ] 質問です。 Private Sub currentWebBrowser_documentComplete(ByVal obj As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent) Dim doc As mshtml.IHTMLDocument2 = CType(currentWebBrowser.Document, mshtml.IHTMLDocument2) Dim anchors As mshtml.IHTMLElementCollection = doc.anchors For Each elem As mshtml.IHTMLElement2 In anchors Dim htmlevents As mshtml.HTMLAnchorEvents2_Event = CType(elem, mshtml.HTMLAnchorEvents2_Event) AddHandler htmlevents.onclick, AddressOf anchor_onclick Next End Sub こんな感じで、アンカー要素のクリックイベントにanchor_onclickメソッドを関連付けたいのですが、 イベントが返ってこない?ようです。他の要素をHTMLElementEvent2_Eventにキャストして、 同じようにイベントを設定した場合は普通に動きます。どうすればいいでしょうか?
248 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:00:14 ] 他と全く同じようにしてムリならばムリなんだろう
249 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 18:34:24 ] 選択範囲の座標を得る方法を教えて下さい。 IHTMLTxtRange 辺りかな?と思ったのですが、分かりませんでした。
250 名前:デフォルトの名無しさん [2007/04/18(水) 22:08:02 ] このスレってまだ生きていますよね。 IEコンポ使ってhtmlの表示を行っている途中で ある特定の<img src="xxx">が出現したら、その画像を置き換えたいのですが やり方がどうもわかりません。 htmlを書き換えて一時ファイルを作成してとかではなく、メモリストリームとかで処理したいのですが ヒントとか、解説があるサイトとかあれば教えてください。
251 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:17:48 ] tvde.web.infoseek.co.jp/cgi-bin/jlab-dat/s/23689.jpg やだやだ…そんなところ舐めないでよぉ
252 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 05:58:23 ] >>250 馬鹿のスクリプト厨で当然.NETもよく知らない俺ですが ActiveXならbody.onloadのタイミングとかで document.imagesを調べる、というのでは駄目でしょうか?
253 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 07:05:59 ] >>249 馬鹿のスクリプト厨です IWebBrowser2::get_Document -> IDispatch::QueryInterface(IID_IHTMLDocument2) -> IHTMLDocument2::get_selection -> IHTMLSelectionObject::createRange -> IDispatch::QueryInterface(IID_IHTMLTxtRange) -> IHTMLTxtRange::get_text で、できました。スクリプトの場合と殆ど同じですね
254 名前:249 mailto:sage [2007/04/20(金) 08:23:56 ] >253 どうもありがとうございます。 ただ、IHTMLTxtRange::get_textって、選択された文字列そのものですよね? あいうえお ~~~~~~ ↑ここが選択されている場合、「いうえ」が納まっている。 私が欲しいのは文字列そのものではなく、その選択されている範囲座標なんです。 例えば、xy座標で、左上が10:10、右下が20:60 みたいな。 要は、マウスでクリックした座標が、選択範囲内か、そこから外れた位置なのか? を知りたいわけです。
255 名前:253 mailto:sage [2007/04/20(金) 21:54:40 ] >>254 おおこれは大変勘違いしました。お恥ずかしい・・・ どうも申し訳ございません。忘れてください・・・
256 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 14:59:24 ] 選択されていれば範囲内 選択されていなければ範囲外
257 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:41:12 ] IHTMLDocumentから何とかIWebBrowserを取得する事ってできないですかね?
258 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:25:34 ] 「IHTMLDocument2からIWebBrowser2を取得する」なら 「ウインドウハンドルからIWebBrowser2を取得したい」で ぐぐって出てくるコードに該当個所がある。
259 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 16:36:45 ] 250とかぶるけど、特定のURLへのリクエストを別のURLにリダイレクトしたい。 Navigate()再発行とかするとimg srcでうまくいかないからダメ。 OnBeforeNavigate2とかのタイミングで、URLをコッソリ書き換えることが出来ればいいんだが。 IInternetProtocolImplとかそのあたりを実装するんじゃまいかと思ってるんだが、誰か知らない?
260 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 18:45:00 ] 知らんけどイベントハンドラ実装した?
261 名前:259 mailto:sage [2007/05/17(木) 18:56:01 ] >>260 OnBeforeNavigateイベントでURLを取得は出来るが、LPCTSTRなので書き換えは出来ない。 たぶんイベントじゃないと思うんだよね。PassthroughAPPとかそのあたりのヨカン。 ドキュメントが少なすぎてわからん。
262 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 20:24:06 ] OnBeforeNavigateでキャンセルしてNavigateじゃだめなん?
263 名前:259 mailto:sage [2007/05/18(金) 11:49:16 ] >>262 それだと<img src=""> のときに画像表示がキャンセルされてページが遷移しちゃうからダメ。
264 名前:259 mailto:sage [2007/05/18(金) 12:10:07 ] 説明が足りないみたいなのでもう一回。 ある書き換え不能なサイトのHTMLに、存在しないサーバへの画像リンクが多数埋め込まれている。 オレは本当の画像の所在を知っているので、問い合わせ先サーバ名をこっそり差し替え、存在しないサーバが存在するかのようにレンダリングしたい。 プロセス外に影響がないようにしたいので、etc/hosts をいじるとかはしたくない。
265 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:31:59 ] オミトロンを使えばいいような気がする
266 名前:259 mailto:sage [2007/05/18(金) 18:37:59 ] >> 265 あーほんとだー できそうだー
267 名前: ◆PAa2MRiwDQ mailto:sage [2007/05/28(月) 16:12:55 ] お世話になります。IEコンポーネントを使う練習をしていまして、 以下のようなコードを書きましたが、どうしても画像のダウンロードをコントロールできません。 そもそも、Invokeが呼び出されません。どこが間違っているのでしょうか? VS2005です。 class CAmbientDispatch : public CComObjectRoot, public IDispatchImpl<IDispatch> { public: BEGIN_COM_MAP(CAmbientDispatch) COM_INTERFACE_ENTRY(IUnknown) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr) { if (dispidMember == DISPID_AMBIENT_DLCONTROL) { V_VT(pvarResult) = VT_I4; V_I4(pvarResult) = DLCTL_DOWNLOADONLY | DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA | DLCTL_NO_DLACTIVEXCTLS | DLCTL_NO_RUNACTIVEXCTLS; } return S_OK; } }; CComObject<CAmbientDispatch> ad;
268 名前: ◆PAa2MRiwDQ mailto:sage [2007/05/28(月) 16:14:54 ] CAxWindow ie; ie.Create(*this, rect, _T("Shell.Explorer"), WS_CHILD|WS_VISIBLE); CComPtr<IAxWinAmbientDispatchEx> adex; ie.QueryHost(&adex); adex->SetAmbientDispatch(&ad); CComPtr<IWebBrowser2> wb2; ie.QueryControl(&wb2); CComQIPtr<IOleControl> poc(wb2); poc->OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
269 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:58:16 ] Vista絡みで質問です。 CoCreateInstance()にて生成したIEに対して Navigate() すると新しく別のウィンドウが開いてしまいます。 元のIEのアドレスバーに適当なURLを入れると、 「この Web ページを開くために、Internet Explorer で新しいウィンドウを開く必要があります。 お使いのコンピュータのセキュリティのため、違うゾーンの Web サイトは別のウィンドウで開く必要があります。」 と言われて、また別のIEが開いてしまいます。Win2K(IE6)では動作確認済みです。 CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_ALL, IID_IWebBrowser2, (void**)&iweb ) ); iweb->put_Visible( VARIANT_TRUE ); CComVariant url( "www.google.com/" ), flags( 0 ), target( "" ), post( "" ), headers( "" ); iweb->Navigate2( &url, &flags, &target, &post, &headers ); エラー処理は省略してますがこんな感じです。 何か処理が足りて無いのだと思うのですが、よろしく願いします。
270 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:29:56 ] >>269 Vistaを使ってないのでわからないですが、 Vistaでは他のゾーンにジャンプする場合 必ず他ウィンドウで開く仕様なんじゃないですか? 最初にInternetExplorerオブジェクトが生成された場合のゾーンが インターネットゾーンじゃないんでしょうね。 XPでもオブジェクト生成すると アドレスバーには何も無いものが出てくるので 初期ゾーンが何かよくわからないですが・・・ くだらないやり方ですがiexplore.exeにURLを指定して起動すれば ゾーン間ジャンプを避けられるんじゃないでしょうか? それで後からShell.ApplictionでIWebBrowserを探して取得する、とか。
271 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:39:30 ] >>267 私はATLもMFCも知らないのでよくわかりませんが、 Invokeが呼び出されない、というからには IDispatchが使われてないんでしょう。 IDispatch継承のカスタムインターフェースを実装したオブジェクトの場合 IDispatchが呼び出されるかカスタム部分が呼び出されるかは 場合によって異なります。 スクリプト言語やVBでレイトバインディングを使うと IDispatchが呼び出されますが それ以外の多くの場合にはカスタム部分が呼び出され、 IDispatchは無視されるはずです。
272 名前:VC-- [2007/06/30(土) 17:34:02 ] vcでCHtmlViewを継承して、javascriptを操作するプログラムを作りたいんですが・・・ とりあえず、CHtmlView::Navigate2を使って、URLを表示しただけで、具体的な方法が わかりません。 例えば、あるサイトで画像をクリックしたら、画像が変化する(javascriptで実装)みたいなプログラム があったとして、擬似的に発動させる方法が知りたいです。 キーボードイベント、マウスイベントで発生させる以外の方法で 知ってたらご教授願いします。
273 名前:デフォルトの名無しさん [2007/07/12(木) 01:24:53 ] _,l;;;;;;;;;;;;;;;;;;;;;;;;;;;l,,_ ,.r'´,. -┐ ':..,゙ヽ ,r' ,::;:' ,ノ ヽ、 ゙:::.ヽ ,.' _.,:;:'___ _立_ ___;;ミ゙、  ̄ノ ̄| ̄ .l厄巳厄巳厄 i王i ,.巳厄巳厄巳l ,勹 .├‐'' l´ , "´  ̄ ̄ ̄ `'''′  ̄ ̄ ̄`.:`{ ´_フ ヽ、_, | l ;;:.,. ::、. ... '゙| ,.-''、.,! ,.::' ヽ、:.゙、 ;;.:' '' ヽ | ,.、 __l__ ./ 、/ `ヾー─tッ−ヽ'' kーtr─ツ'´〕. ヽ. | / {´i Y::::.. ` ̄ ̄´.: "i! ::. 、` ̄´ ゙:::.、} r、 l i,____ | ヾ_,,入;:::.. `'' " ´.::; .::i! ::.. ``` :. }ツl l \ ノ ヾ ;:::. .:r'' :: ll! :ヽ;:..:. .: j,ノ ,! ┬‐┌,┴┐ ヽ',,;l ゙i ;::.. _ `ヽ、;;,,,,'.ィ'' _,, .::,;r'1,,,/ l__ ノl士 ッジ::::::| ゙ ,r'´:::;;;;;;;::> 弋´;;;;;::::ヽ'" |:::::゙'イィ ノ凵 l土 弍:::::::::::l /:::;r'´ ,,..-ー…ー-、 ヾ;:::'、 |:::::::::::ヒ シ:::::::::::l i':::,! ´ __ ゙ l::::l:. |::::::::::ス __ヽ__‐┬┐ 彡;:;:::::l l:::l ''''''''⇒;;;:, l:::l |::::;;ャ` ニ メ ,ノ ,r', 广'`ヽl:::l ::::. .:: ゙::. l::l ノ^i`、 l ̄l ハヽヽ ,イ(:::j i::;ヘ :;:. .:: l::l'" l:ヽヽ  ̄  ̄ |;:ヽヽ l::l ヽ ;:.... .. .. : /l::l ノ ,.イ |;:;:;:;\\ l::l ', :;.:;::::::::::..::. / l::l,r'' /;:;:;|
274 名前:デフォルトの名無しさん [2007/08/04(土) 13:58:59 ] IEとかエクスプローラのアドレスバーから検索するときの urlってどこから取得できるんだろう
275 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:56:19 ] レジストリでも検索してみたら?
276 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:40:42 ] regmonでみれば?