■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

IEコンポーネントを使い倒すスレ
251 名前:デフォルトの名無しさん :01/10/31 12:28
Mozillaコントロールを動的生成するとエラーが出るんだけど、
どうしてだろう?

252 名前:デフォルトの名無しさん :01/10/31 13:02
>250
タイトルバーのアイコンをドラッグすることを制限するの?
ドロップされた側が遷移することを制限するの?

253 名前:デフォルトの名無しさん :01/10/31 13:08
VC++で自作したブラウザ上で右クリックを無効にし、
右クリックコンテキストメニューが出ないようにする
方法ありますか?

254 名前:デフォルトの名無しさん :01/10/31 14:35
>>253
WM_CONTEXTMENU

255 名前:250 :01/10/31 15:20
>252
タイトルバーのアイコンをドラッグすることを制限したいです。
ただこれができないようでしたらドロップされた側の制限でもよいです。
できれば前者が望ましいのですが・・・

OSはWinNT4.0 SP6aです。

256 名前:デフォルトの名無しさん :01/10/31 15:33
イベントをViewより先に捕まえて、消しちゃうってのは?

257 名前:デフォルトの名無しさん :01/10/31 15:47
>256
WH_GETMESSAGEでWM_NC(L/R)BUTTONDOWNあたりですか?

258 名前:デフォルトの名無しさん :01/10/31 17:43
WM_CONTEXTMENUのほうが(捕まるなら)
アプリケーションキーやShift+F10なんかも
統一的に制限できて望ましいと思われ

259 名前:デフォルトの名無しさん :01/10/31 18:30
IEコンポーネントを使用するために実装する必要があるインターフェースは、
IOleContainer
IOleInPlaceFrame
IOleClientSite
以外にあるのでしょうか?
また、どれが必要などの情報はどこで入手するのでしょうか?

260 名前:デフォルトの名無しさん :01/10/31 23:05
IOleClientSite
IOleContainer
IOleInPlaceSite
IOleInPlaceFrame
をインプリメントして出来ました。

で、質問なのですが、
IOleContainer::GetWindowと
IOleInPlaceFrame::GetWindowは、

前者がMDI時のMIDChildに当たるウインドウで、
後者はFrameWindow。
SDI時には両方とも同じという理解で良いのでしょうか?

261 名前:デフォルトの名無しさん :01/11/01 16:14
>>150
同様に,CHtmlViewに表示される全画面のイメージを取得したいのですが,
どうしたらいいでしょうか?

262 名前:デフォルトの名無しさん :01/11/02 19:04
CHtmlViewでWM_CONTEXTMENUが捕まらない

263 名前:デフォルトの名無しさん :01/11/02 19:35
>>262
HTMLViewでコンテキストメニューを捕まえたいなら、
IDocHostUIHandler::ShowContextMenu()だね

264 名前:デフォルトの名無しさん :01/11/03 01:30
>>263
サンクス

265 名前:デフォルトの名無しさん :01/11/03 15:00
>>264
COM必須だからがんばってね

266 名前:デフォルトの名無しさん :01/11/05 09:00
>249
RFC?
そんなの知らなくても大丈夫だyo!
MFC&WebBrowserコントロールで楽勝

267 名前:デフォルトの名無しさん :01/11/08 01:33
ドラッグ&ドロップを無視する方法ってないかな?
ドラッグソースとしてもドラッグターゲットとしても機能させたくないんだけど

268 名前:デフォルトの名無しさん :01/11/08 03:38
>>267
何の話だよ?
IEの?

269 名前:267 :01/11/08 05:10
IEコンポーネントです

270 名前:デフォルトの名無しさん :01/11/08 16:19
IDocHostUIHandler::GetDropTarget()これじゃだめなん?
ドラッグソースになるのを制限する方法はわからない。

もしくは、
IDocHostUIHandler::EnableModelessあたり

271 名前:267 :01/11/08 17:57
>>270 さん
GetDropTargetでできました 情報ありがとうございます。
(EnableModeless の方は何でしょうか?)

ドラッグソースの抑止を引き続き募集しております
もしご存じの方いらっしゃいましたら情報宜しくお願いします。

272 名前:デフォルトの名無しさん :01/11/09 02:12
>260さん
どうやってSDKで実装すればいいのでしょうか。
やり方載ってるページあったら紹介してくださいませんか。

273 名前:デフォルトの名無しさん :01/11/16 12:34
VBでブラウザを作っているのですが、IEのオブジェクト上での右クリックで出てくるメニューを
表示させたくありません。
どのようにすれば規制できるか試行錯誤していますがなかなか解決できていません。

もし、よろしければご指導お願いします。

よろしくお願いしますm(_ _)m

274 名前:デフォルトの名無しさん :01/11/19 04:43
カチュアゲ

275 名前:S :01/11/20 01:02
微妙に息の長いスレだな。

276 名前:デフォルトの名無しさん :01/11/20 11:34
273へご指導を。

277 名前:デフォルトの名無しさん :01/11/20 12:43
>>276
何故過去レスを読みませんか?>>263

278 名前:デフォルトの名無しさん :01/11/20 14:55
>>277
VBで、ってのがミソだね。
>>263と同じようにやればいいんだけど、やり方はだいぶ違う。

279 名前:名無しさん :01/11/24 08:48
休日アゲ

280 名前:デフォルトの名無しさん :01/11/27 00:47
user-agentとか偽装したり、
Range: bytes=10- とかコンテンツを途中から取得したり
するためにHTTP requestヘッダをいじりたいんだけど
どうしたらいい?おしえて、おねがい!

281 名前:  :01/11/27 01:37
>280
Proxomitronが一番てっとり早い?カナ

282 名前:280 :01/11/27 01:53
>281
サンクス。
でも、プロキシとか使わずに
IEがリクエストを生成するときにフックされる形で
プログラムがリクエストを生成することはできないかな?

ちなみに、当方Win32SDKでやっております。
でIWebBrowsers2へのポインタも取得はできてます。
わかる方がいらしたら、教えてくださいまし。

283 名前:デフォルトの名無しさん :01/11/27 02:02
ヘッダを置換する wsock32.dll を作る

284 名前:280 :01/11/27 02:10
>>283
それしかないっすか?
俺のスキルでは無理っぽいです。。。
ほかの手は無いのでしょうか?

285 名前:デフォルトの名無しさん :01/11/27 02:24
ヘッダを置換する IE を作る

286 名前:280 :01/11/27 02:39
却下!次のかた、どうぞ。

287 名前:デフォルトの名無しさん :01/11/27 08:44
>>284
かちゅ用のwsock32.dllのソース公開されているから
参考にしてみたら?

288 名前:デフォルトの名無しさん :01/11/27 22:55
・URLが入力されたら、自分でHTTP経由でとってきて、
変換などをし、WebBrowserオブジェクトに表示させる
(各種2chブラウザみたいな方向。当然、img src等も
必要なら自前で処理する)

つーか、283ができねーようなら、これ以下は無理だろーが。
・間にパケットをいじるようなルータを入れる(自作)
・debugAPI等で、DLLをダイナミックパッチする
なんかの方法もあるな。

289 名前:デフォルトの名無しさん :01/11/27 23:27
HTTPでファイル取得する程度ならwininet.dllで充分だな。
あれはUser-Agent指定できるし。

290 名前:デフォルトの名無しさん :01/11/28 00:54
>>280
APP
だな。

291 名前:280 :01/11/28 00:55
答えてくれた皆さんありがとう。
ksockのソース見てちょっといじってみるよ。

292 名前:デフォルトの名無しさん :01/11/30 02:04
MFCでWebオブジェクトにあるWeb(test.htmとする)を表示して、
それに対してGetLocationName(またはURL)すると、当然test.htmが
取得できますが、ユーザー操作(リンククリック)によって
test.htmの中にあるリンクページ(link.htm)にジャンプしてから、
GetLocationNameすると、link.htmが得られそうなのに、
test.htmが戻ってきますね。

Webオブジェクトに現在表示されている最新のURLを取得する方法はありますか?

293 名前:デフォルトの名無しさん :01/12/01 13:43
IEのプラグインで
ウィンドウのリサイズイベントを取得する方法ってありますか?
DWebBrowserEvents2って
リサイズのイベント発行しないみたいなんですよね。

294 名前:デフォルトの名無しさん :01/12/03 16:58
ExecWBを使って、現在表示されているURLを取得する方法ありますか?
教えてください

295 名前:デフォルトの名無しさん :01/12/03 17:04
>>280
スタンダードに、
ローカルなプロキシを作るのがよい。

296 名前:デフォルトの名無しさん :01/12/03 17:27
>>292
つか、donutのソースでも読んだら?

297 名前:294 :01/12/03 23:39
>>296
見たのですが難解でした。どなたかヒントください!!!

かなり、沼にはまってます

298 名前:デフォルトの名無しさん :01/12/04 03:33
>267
まず聞きたいのは、donutのアドレスバーは、
君の望む動作をしたのか、ってことだ?
#まさか、該当htmファイルがフレームとか‥‥

299 名前:267(本物) :01/12/04 03:35


300 名前:297 :01/12/04 04:59
>>298
す、するどい
フレームです。これが問題かも。
動作そのものは、GetLocationURLで問題なさそうですね。
となると、どう対処すればよいのやら・・・

301 名前:デフォルトの名無しさん :01/12/04 05:17
るby!

302 名前:298 :01/12/04 05:27
>267 スマソ。間違い
>300
DWebBrowserEvent2::BeforeNavigate2あたりを捕まえるとか。

303 名前:デフォルトの名無しさん :01/12/04 14:54
メモリ上に存在するhtmlや画像のレンダリングを行いたいのですが、やったことある人いますか?
htmlのレンダリングはDOM使って地道に組み立てるなりinsertAdjacentHTMLするなりで何とかなりそうなのですが、
画像のレンダリングはちょっと検討つきません。imgエレメントの読み込みを捕まえても仕方ないですし。

304 名前:298 :01/12/04 15:36
Pluggable Protocol Handlerを実装して、
<img src="memory://id48885251">とかやるとか。

305 名前:デフォルトの名無しさん :01/12/04 15:44
Pluggable Protocol Handlerって面白い仕組みですね。今触っています。ありがとう!

306 名前:デフォルトの名無しさん :01/12/04 17:39
続報です。Pluggable Protocol Handlerについて。
自分でプロトコルを実装するには
・レジストリに書き込んじゃう(OSグローバルなプロトコルになる。memory://....)
・IInternetSession::RegisterNameSpaceで一時的に登録する(アプリケーションローカル。プロトコルじゃなくてnamespaceが操作対象。http://memory/...とかやるのかな?)
という2つの方法があるっぽいです。
詳しくは下記URLで。
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp
まだ全然コード書いていないので、詳しい検証はしていません。
「IInternetSession RegisterNameSpace」でGoogleして26件しか見つからん・・・

307 名前:デフォルトの名無しさん :01/12/04 18:06
>>306
Pluggable Protocol Handlerを実装しちゃうと、
普通のホムーペからも呼び出せちゃうから、
セキュリティホールが空かないように気をつけてね。

308 名前:デフォルトの名無しさん :01/12/09 03:38
コンポーネントじゃないんですが
P板の人ならと思い。。。

>セキュリティゾーンって幾つかあるけど新しく作ることは出来ないの?
>信頼済みは全て許可にしてるけど、スクリプトだけ許可したゾーンを
>作りたいんだよね。

わかりますか?

309 名前:デフォルトの名無しさん :01/12/09 04:50
>>308
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\
レジストリでここに新しいゾーンを書き込んでみましたがダメでした。
ちょっと無理っぽいです。

310 名前:デフォルトの名無しさん :01/12/09 05:12
>>309
それだとしたら、HKEY_CURRENT_USERの方じゃないか?
いや、試した訳じゃないけど。

311 名前:310 :01/12/09 05:18
おっ、試してみたらうまく行ったよ。> HKCU

312 名前:デフォルトの名無しさん :01/12/17 19:17
IEコンポーネントで動いているJavaScriptから値をとりたいのですが
なにか良い方法ありませんか?
DHTMLで取ろうと思ったのですが、内容が変化した事を知る方法がわからないです・・・

313 名前:312 :01/12/18 02:06
独りでなんとかできそうです

bye

314 名前:デフォルトの名無しさん :01/12/27 01:59
age

315 名前:デフォルトの名無しさん :01/12/27 23:16
右クリックをすると「対象をファイルに保存」とでますが、
これはどれのコンポーネントに実装されているのでしょうか?
また、なんてメソッドでしょうか?

316 名前:デフォルトの名無しさん :01/12/27 23:41
> 315
それ、IEじゃなくない?

317 名前:デフォルトの名無しさん :01/12/28 01:01
>>315
よくわからないけど、ぱっと見で、
SHDOCVW.DLLの
DoFileDownloadかDoFileDownloadEx関数で出来そうな感じがする・・・

318 名前:315 :01/12/28 01:06
> 317
ど…どうやって調べるんですか?
DLLの中から関数を見つけるなんて…

319 名前:デフォルトの名無しさん :01/12/28 01:14
>>318
このソフトで調べられるよ。
http://www.dependencywalker.com/

320 名前:デフォルトの名無しさん :01/12/28 01:14
>>318
バイナリエディタで後ろの方を調べる、Win98の頃にあったクイックビューアを使うとか。

321 名前:デフォルトの名無しさん :01/12/28 01:23
>>315
GoogleでDoFileDownloadを検索したら、
英語のサンプルがたくさん出てきたよ。
VBで試してみたらうまくいきました。

322 名前:IUnknown :01/12/28 22:41
DoFileDownload は昔使ったことあったがDoFileDownloadExは
どうしてもパラメータがわからなかった。Undocumentedのようだし。。。

DoFileDownloadは呼び出しもとのプロセスが終了すると一緒に
終了してしまうが別プロセスで実行させるにはどうしたらいいんだろう?

今もこの2点はわからぬままなのである(未熟)。

323 名前:デフォルトの名無しさん :01/12/31 13:40
> DoFileDownloadは呼び出しもとのプロセスが終了すると一緒に
> 終了してしまうが

IEのプロセスを終了するとダウンロードダイアログも終了するから
仕様だと思われ

324 名前:デフォルトの名無しさん :02/01/04 05:43
IEも氷魚作品。5.01以降は茶番だよ
DX7いこうは糞。もうやつに関わらせるなって。
あいつにきいてみろ、それらしいやつうろちょろしてるはずだよ
今頃。

325 名前:デフォルトの名無しさん :02/01/04 05:46
中身後悔してほしかったら、そのまえに
自分らでつくりなおせよってさ。

あいつのまねなんか普通誰もむりだって
とっとと奴につくらせろよなんか、決定的なのを
どうせいまごろばりえーしょん作りに夢中。
他人への教材のつもりらしいが他の奴らには
完成品にしかみえんだろうよ。たぶぶらうざ&
かちゅ全般。にちゃんはひおのてき製作。

・・・あいつの独壇場だよ。
正直やっとれんわ。

326 名前:デフォルトの名無しさん :02/01/04 05:50
氷魚がこの板やPC業界を底上げしているけど、
本当は目覚しい人類の進歩でなくて氷魚の遺作。
多分メモリ展開解答あぷりにも関わっている奴。
セグメントぶちぬいて、ばいなりいじるのもうやめろと
氷魚にいっとけ!!かなり頭に来た。
日本人ならともかく、あいつは米系列だろう?
俺と同じで。

327 名前:デフォルトの名無しさん :02/01/04 05:52
SiSにいまごろてーかしてるだろうから、
それらしいやつさがせ
128bitCPUに関わった奴だよ。
こんなの程度誰でも簡単とかぬかしてるやつだよ

あほ扱いされ過ぎて卑下しすぎ→電波、

328 名前:デフォルトの名無しさん :02/01/04 10:16
>>324-327 よっぱらい? あふぉ

IEのコンポーネントっていうとみんなインターネットがらみの話になっているけれど
別にWinInet使うぐらいでもいいわけだから
もうちょっとOLEコンテナとしてのIEについて考えない?

例えばACTIVE-X使うときタイプライブラリーとか使わなくても
いきなりADOとかSAPIとか使えちゃうよね、

あとVBやdelphiと比較してユーザーインターフェース部分
htmlで実装するならばWEBデザイナーが使えるはず
これって基本クラスとして実装したら結構あとらくだと思うんだけど

329 名前:デフォルトの名無しさん :02/01/04 10:22
>>328
ここのデンパが迷い込んだだけ
脳内あぼーん推奨
http://pc.2ch.net/test/read.cgi/prog/999284410/

330 名前:328 :02/01/04 19:11
>>329 なんだ。こいつは...ま いいか。

要はそこそこの性能で動いて、とりあえず法的に問題なくて
気が向いたら高速化できるスペックならいいんじゃない。

だからWININET まんせー
IEコンポーネント まんせー

331 名前:デフォルトの名無しさん :02/01/04 23:04
ん? もしかして勘違いされた?
324-327はデムパだから脳内あぼーんしたほうがいいよという
つもりだったんだけど

332 名前:デフォルトの名無しさん :02/01/06 19:04
IEコンポーネントでは、HTMLのTITLE="NANTOKA"でツールチップが表示されるけど、
表示までの時間を変更するにはどうするんでしょう?

333 名前:デフォルトの名無しさん :02/01/11 22:59
WebBrowserコンポーネントで簡易ブラウザを作ろうとしているのですが
開いたページの大きさに合わせて、スクロールバーの出ないギリギリまで
縮めるようなことはできるのでしょうか。
つまり、そのギリギリのサイズをどうにか取得したいのですが。
環境はC++Builder4です。

334 名前:ねこま :02/01/11 23:17
document->body->Scroll(Width|Height)

335 名前:333 :02/01/12 01:42
ありがとうございます〜。
まだちょっと動いてないですが、なんとか出来そうです。

336 名前:333 :02/01/12 18:14
…やっぱり出来ませんでした。

IHTMLDocument2* doc;
WebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (void**)&doc);
IHTMLElement* body;
doc->get_body(&body);

でBODYエレメントまでは行くんですが、そこから先がどうすればいいのか解りません。
検索していろいろ試してみたのですが body->get_offsetHeight(&lHeight) というのだけ
動きましたがどうも違うようでした。
IHTMLElement2* で宣言できればScrollHeight等が得られそうなのですが、タイプライブラリを
取り込んでも未定義といわれてしまいました。

どなたかアドバイスお願いします。

337 名前:デフォルトの名無しさん :02/01/12 18:23
to 333
http://n76cd-01p02.ppp11.odn.ad.jp/old/a4950.html

338 名前:333 :02/01/12 20:23
ありがとうございます。
実はそのページも見て試行錯誤していたのですが、まだうまくいっていませんです。

MSHTML::IHTMLElement2* pIHTMLElement2;

としても 「MSHTMLは名前空間ではない」とコンパイルエラーになってしまいます。
using namespace MSHTML;
とすると、「Namespace name expected」とエラーになりました。
名前空間に関してはいまいち理解できていません。

IHTMLElementでなんとかできないものかとやっていましたが、どうも
get_offsetHeight,Widthしかないようでした。

mshtml.h を見ても IHTMLElement2自体定義されていないようにも見えるのですが
どうすればいいのでしょう…。PlatformSDKが古いのかもしれませんがサイトに
行ってもスクリプトのエラーでページが表示されずDLできないので困っています。

何か解決策をご存知の方、お願いします。

339 名前:デフォルトの名無しさん :02/01/12 20:31
1.IE5.0以上をインストールしていない
2.タイプライブラリを取り込んだ後MSHTML_TLB.Hをインクルードしてない。
3.それ以外。なんつったり

340 名前:333 :02/01/12 21:29
<MSHTML_TLB.H> インクルードしていませんでした。
タイプライブラリは取り込む(の処理)だけでいいと勘違いしていました。
本当にありがとうございます。

>337 のサイトに書いてあったのを参考にこうなりました。ほとんどパクリなのですが…。

long lHeight;
IDispatch* pDisp = WebBrowser1->Document;    // TWebBrowser *WebBrowser1;
IHTMLDocument2* pIHTMLDocument2;
pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pIHTMLDocument2);

IHTMLElement* pIHTMLElement;
pIHTMLDocument2->get_body(&pIHTMLElement);
IHTMLElement2* pIHTMLElement2;
pIHTMLElement->QueryInterface(IID_IHTMLDocument2, (void**)&pIHTMLElement2);
pIHTMLElement2->get_scrollWidth(&lHeight);

実はまだ動いていないので、もう少しだけお願いします。
このソースだと一番下のget_scrollWidthの行で読み込み違反が発生します。
同様の症状はDocumentを取得する際にまだそのサイトがロード中だった場合に
発生しましたが、今は一連の処理を READYSTATE_COMPLETE を待ってから
行っているので原因は違うようです。

何か心当たりがありましたら、宜しくお願いします。

341 名前:333 :02/01/12 21:39
すみません、修正です。一番下の行はget_scrollHeightの間違いです。

342 名前:デフォルトの名無しさん :02/01/12 21:40
>QueryInterface(→IID_IHTMLDocument2, (void**)&pIHTMLElement2);
とか
>get_scrollWidth(→&lHeight);
は単なるtypoなのか?

343 名前:333 :02/01/12 22:02
__uuidof はMicrosoft特有の仕様なのでBCBでは使えませんでした。
代わりに IID_IHTMLDocument2 にしました。
ttp://isweb23.infoseek.co.jp/computer/wds/html_designer_code.shtml
↑こちらとか参考にしてみたのですが、問題あるかもしれないです。

WidthとHeightは、Widthで書いていたところを>337に合わせるため
Heightに修正したのですがget_scrollWidthだけ忘れていました。
get_scrollHeight(&lHeight)です。

344 名前:IID_IHTMLElement2 :02/01/12 22:26
でわ?

345 名前:333 :02/01/12 22:41
全くその通りでした。指摘していただいたというのに、お恥ずかしい…。
おかげさまで無事サイズを合わせることができました。本当に感謝です。

346 名前:  :02/01/13 23:00
InternetOpenURLで以下のように複数行に渡るヘッダを追加することってできないの?
InternetOpenUrl(m_hInternetSession, URL,"A: a\r\n\tbbbb\r\n", strlen("A: a\r\n\tbbbb\r\n"), INTERNET_FLAG_RELOAD, (DWORD) this);
たしか、タブとかスペースが入ってたら複数行してもいいとHTTP1.1のRFCには書いてあった気がしたんですが、、、

僕の理解間違いかな?
それとも、wininetがサポートしてないだけ?
はたまた、やり方が違いますか?

お分かりになる方、助言をお願いします。

347 名前:デフォルトの名無しさん :02/01/13 23:08
http://msdn.microsoft.com/workshop/networking/wininet/reference/functions/internetopenurl.asp
> lpszHeaders
> [in] Pointer to a string variable that contains the headers
> to be sent to the HTTP server. (For more information, see
> the description of the lpszHeaders parameter in the
> HttpSendRequest function.)

タブやスペースとはどこにも書いてませんが。
つーかどういうヘッダを追加したいのか不明。

348 名前:346 :02/01/14 00:02
だれもmsdnとはいってませんが。
RFCだっちゅうねん。
以下rfc2068抜粋。

HTTP header fields, which include general-header (section 4.5),
request-header (section 5.3), response-header (section 6.2), and
entity-header (section 7.1) fields, follow the same generic format as
that given in Section 3.1 of RFC 822 [9]. Each header field consists
of a name followed by a colon (":") and the field value. Field names
are case-insensitive. The field value may be preceded by any amount
of LWS, though a single SP is preferred. Header fields can be
extended over multiple lines by preceding each extra line with at
least one SP or HT. Applications SHOULD follow "common form" when
generating HTTP constructs, since there might exist some
implementations that fail to accept anything beyond the common forms.

349 名前:デフォルトの名無しさん :02/01/14 00:21
とりあえず、HTTP応答でもみて、レイヤの切り分けをせんかい。

350 名前:346 :02/01/14 00:25
いや、
応答以前にセッションがNULLになってしまうんですよ。
単純にwininetがひとつのヘッダフィールドをtabで複数行連ねることを解釈できないのかな?

351 名前:デフォルトの名無しさん :02/01/14 02:02
tabで複数行に分ける必要がどこにある?
継続行は実際には解釈しないクライアントが多いから1行で書けとどこかで見たぞ

352 名前:デフォルトの名無しさん :02/01/14 02:03
>>340
> IDispatch* pDisp = WebBrowser1->Document;    // TWebBrowser *WebBrowser1;

333さんに質問です。
このTWebBrowserってどうやって使ってるんでしょう?
私も似たようなことをやろうと思って自分のソースに組み込んでるんですが、「定義されていない識別子です」。

#import <mshtml.tlb>
#include <mshtml_tlb.h>
はとりあえずしてます。

353 名前:333 :02/01/14 03:06
BCB4を使っていましたが、TWebBrowserは標準では登録されていませんでした。

[コンポーネント]→[ActiveXコントロールの取りこみ]で、「Microsoft Internet Controls」を
インストールすれば、コンポーネントパネルのActiveXタブにTWebBrowserが現れます。
あとは他のコンポーネント同様にフォームに貼りつけて使ってください。

354 名前:333 :02/01/14 03:12
ところで、#import が使えるということはBCB5ですよね。
TCppWebBrowserって標準でついてませんか?

355 名前:デフォルトの名無しさん :02/01/15 17:13
お気に入りの表示回数とか最終表示日時って
どこに記録されてるんでしょうか?

356 名前:デフォルトの名無しさん :02/01/15 17:17
http://bom-ba-ye.com/a.cgi?netapp=1

357 名前:デフォルトの名無しさん :02/01/17 08:04
Desk Band を作ったんですが、IE だけで使いたいので
Explorer のツールバーに出させないようにするには
どうしたらよいのでしょう?


358 名前:便乗 :02/01/17 08:17
Desk Band で「クイック起動」みたいに1つだけしか作れないようにするには
どうしたらよいのでしょう?

タスクバー右クリック→[ツールバー(T)|クイック起動]


359 名前:デフォルトの名無しさん :02/01/17 08:47
クリエイトプロセスでIEを起動して指定サイトを開くソースキボン。

360 名前:デフォルトの名無しさん :02/01/17 12:30
>>357
レジストリで
noexplorer=1

361 名前:デフォルトの名無しさん :02/01/17 12:34
普通ShellExecuteで標準のブラウザを開くと思うが・・・
まあいいや。
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si, 0, sizeof si);
si.cb = sizeof si;
CreateProcess("C:\Program Files\Internet Explorer\Iexplore.exe",
"iexplore http://www.2ch.net/",
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

362 名前:デフォルトの名無しさん :02/01/17 14:16
>>358
///////////////////////////////////////////////////////////////////////////
//
// IPersistStream implementations
//
// This is only supported to allow the desk band to be dropped on the
// desktop and to prevent multiple instances of the desk band from showing
// up in the shortcut menu. This desk band doesn't actually persist any data.
//

STDMETHODIMP CDeskBand::GetClassID(LPCLSID pClassID)
{
*pClassID = CLSID_SampleDeskBand;

return S_OK;
}

STDMETHODIMP CDeskBand::IsDirty(void)
{
return S_FALSE;
}

STDMETHODIMP CDeskBand::Load(LPSTREAM pStream)
{
return S_OK;
}

STDMETHODIMP CDeskBand::Save(LPSTREAM pStream, BOOL fClearDirty)
{
return S_OK;
}

STDMETHODIMP CDeskBand::GetSizeMax(ULARGE_INTEGER *pul)
{
return E_NOTIMPL;
}


363 名前:357 :02/01/18 10:51
>>360
>>レジストリで
>>noexplorer=1
教えてもらってありがたいんですけど、
どこのキーに入れたらいいのか、全然わかりません...


364 名前:358 :02/01/18 15:50
>>362
ありがとうございます
やってみます


365 名前:デフォルトの名無しさん :02/01/23 02:54
JAVAスクリプトを実行するしないとかの切り替えはどうやってやればいいんでしょ
PutPropertyを使えばいいんだとは思いますが突っ込むプロパティの値がわからんのです

Donutのソース読んだらATL使ってたので分からなければあれで書きます


366 名前:山本 :02/01/23 17:07
2?6


367 名前:デフォルトの名無しさん :02/01/23 18:43
>>365
レジストリに載ってる数字

368 名前:デフォルトの名無しさん :02/01/23 19:58
はじめまして

http://mbs.jp/maji/
ここのHPにある投票フォームをソースで表示してどこかイジって
クリックするとある選択肢に投票されるプログラムを作りたいんですがわかりません。
私は全くそういう知識がなく、この板にくるのも初めてです。
どうかアドバイスお願いします。


369 名前:デフォルトの名無しさん :02/01/23 23:22
DelphiでTWebBrowserコンポーネントを使っているんですが、
ブラウザ画面にデータを小分けにして追加する方法はありませんか?
ダウンロードしつつあるデータを変換しながら表示したいんです。
一括で指定する方法ならmonazilla.org(wにサンプルがあったんですが。

370 名前:デフォルトの名無しさん :02/01/24 01:04
>>369
出来るよ。
最初にopenして細切れにwriteすればいいだけ。
で、少しずつ見えるようにするには、writeの後にApplication.ProcessMessageを
すればいいはずなんだけど、大きいHTMLの場合、うまくいかない
場合があるんだよなぁ。(writeの結果が反映されない部分がある)



371 名前:369 :02/01/24 01:26
>>370
openしてwriteってことは、IHTMLDocument2ですか?
PSafeArrayでBYTEのSafeArrayを作ってうんぬんですか?

372 名前:デフォルトの名無しさん :02/01/24 01:44
>>367
これほんと?
例えば画像を読み込まない設定はどんな値を入れればいいの?

373 名前:デフォルトの名無しさん :02/01/24 02:29
>>371
>openしてwriteってことは、IHTMLDocument2ですか?
こっち

374 名前:デフォルトの名無しさん :02/01/24 03:30
>>373
隊長!
IHTMLDocument2 and write and PSafeArrayで検索したところ、
ロシアのサイトで詳しいやり方を発見しました!
ttp://www.gks.wsnet.ru/Jurnalz/CP/092001/2001_06_tweb/

なんかどこかで見たことのある文字がいっぱいだ(藁



375 名前:デフォルトの名無しさん :02/01/24 20:13
>374
ロシアん・・・侮りがたし・・・・

376 名前:デフォルトの名無しさん :02/01/24 23:03
C++Builder4でTWebBrowserを使っています。

IHTMLDocumentでwriteしたページのサイズをscrollheightとscrollwidthで取得し
リサイズしているのですが、writeした直後にサイズを取得するとまだ不完全な
ページのサイズが返ってきてしまいます。
write後の描画が完了したことを知るにはどうすればよいのでしょうか?
DocumentCompleteじゃないようだし…。

377 名前:ねこま :02/01/25 00:59
え? DocumentComplete じゃないの?


378 名前:376 :02/01/25 01:30
writeの後にDocumentCompleteが発生しないんです。
なにか間違ってるのかなぁ…。

379 名前:ねこま :02/01/25 01:45
多分これ
READYSTATE_COMPLETE
ttp://plaza21.mbn.or.jp/~takoyakusi/delphi/Event.html

write の直後に ReadyState が READYSTATE_COMPLETE になるまで待機すればいいかも
試してないけど

380 名前:ねこま :02/01/25 01:50
あー全然外してるかも


381 名前:376 :02/01/25 02:47
ありがとうございます。
実は以前も試してみたのですが、何故か描画終了前に(READYSTATE_INTERACTIVEと
同じタイミング?)COMPLETEが返ってきてしまい、巧くいきませんでした。
方法としては合っているような気がするのですけど…。

382 名前:デフォルトの名無しさん :02/01/25 15:33
>>379
この人のサイト、いろいろ情報があって役に立つよね。
でも、デザインセンスが。。

383 名前:デフォルトの名無しさん :02/02/02 21:06
Windows Script Component で type=Behavior にして
IE5.5 で <object> としてロードしたんだけど
<layout> で記述した html が表示されません
これは正しい動作なんでしょうか?


384 名前:デフォルトの名無しさん :02/02/09 02:43
Webブラウザコントロールから、HTML DOMを弄ろうと考えました。
//Navigate("about:blank")のDocumentComplete。
void OnDocumentComplete( CWebBrowser2&br, const CString &url){
CComPtr<IHTMLDocument2> doc;
CComPtr<IHTMLElement> body;
CComPtr< IHTMLDOMNode > body_node;
...(略)...
CComPtr<IHTMLElement> p;
doc->createElement(L"p", &p);

CComPtr< IHTMLDOMNode > p_node; p.QueryInterface( &p_node );

CComPtr<IHTMLDocument3> doc3; doc.QueryInterface(&doc3);

CComBSTR dtstr( L"TestString");
CComPtr<IHTMLDOMNode> text; doc3->createTextNode(dtstr, &text);

//body_node->appendChild( text, NULL );
body_node->appendChild( p_node, NULL );
p_node->appendChild( text ,NULL );
}
最後のp_node->appendChildで、E_UNEXPECTEDが帰ってくる
のですが、なぜでしょうか?
コメントアウトされているbody_node->appendの方はS_OKでした。
環境は、VC++SP5, IE5.01, ATLです。


385 名前:デフォルトの名無しさん :02/02/13 06:02
age

386 名前:デフォルトの名無しさん :02/02/19 21:07
保守じゃ

387 名前:test :02/02/20 07:42
sample

388 名前:test :02/02/20 08:22
sample

389 名前:Yahoo Man :02/02/20 09:16
大変だーー。

390 名前:そうですか・・ :02/02/20 09:33
もうダメボ

391 名前:デフォルトの名無しさん :02/02/24 18:21
Delphi 6 Personal、IE 6、Windows 2000で
IEコンポーネントを利用しているんですが、
アンカーやフォームでエンターを押してもリンクが開きません。
今のところ、キーボードメッセージをフックして
IHTMLDocument2.activeElementで取得したエレメントに対して
Clickをしてごまかしているんですが、これだと
<INPUT TYPE="TEXT">とか<INPUT TYPE="PASSWORD">でうまくいかない。
しかも、なぜかIHTMLInputElementやIHTMLInputTextElementにも
QueryInterfaceができないんです。
これの解決方法を教えていただけませんでしょうか。

392 名前:デフォルトの名無しさん :02/03/16 13:43
age!!

393 名前:デフォルトの名無しさん :02/03/16 14:20
結局さあ、COMであってもあんな使いずらかったら
何もできんのと同じだよなあ

394 名前:デフォルトの名無しさん :02/03/17 20:00
使い方次第。

395 名前:ちょい教えて :02/03/19 17:47
ActiveX解除ツールに関して


Outlook Express 5.5 (Internet Explorer 5.5) 以前では [インターネット ゾーン]
であったのに、Outlook Express 6 (Internet Explorer 6) でははなく [制限付きサ
イト ゾーン]がデフォルトとなった

ストレスを解消する為に、Outlook Express 6 の初期設定のままでも「Active
X」を動作可能にするソフトやプログラムってありますか?また開発は難しい?

メールを送信した間だけでも「Active X」の制御が解除されるようになれば
ベストなんだけど。



396 名前:デフォルトの名無しさん :02/03/19 17:53
>>395
ウイルス作者の方ですか?

397 名前:ちょい教えて :02/03/19 20:34
ウィルス作者ではありません。ウィルス作者さんを探しているくらいです。
まぁ半分冗談ですけど、レベルの高い人との出会いも探しています。
俺はoutLookを使ってメールを送信したいんですけどIEによってこんなに
違うとは思わなかった。
どうしたらいいんでしょう5.5だと見れて6になるとエラーが出ちゃうんです。


398 名前:デフォルトの名無しさん :02/03/19 20:45
IEの話じゃないけど、タンにOLE2/COMでメールを自動送信したい場合って、
なにかある?OutlookExpressはサーバにならんのだよね。ダサすぎ。

399 名前:デフォルトの名無しさん :02/03/21 21:21
>>397
レベルの高い人はウィルスを送りつけてやろうなんてアホなことは考えません。

400 名前:デフォルトの名無しさん :02/03/26 22:41
かちゅ〜しゃで レス番号を左クリックするとメニューがでますよね
あれってプログラム的にどうやってるんですか?

401 名前:デフォルトの名無しさん :02/03/26 23:38
>400
今Delphiねーからわかんねーや。
ゾヌも同じようなことやってるから、ソース見てみれば?

402 名前:デフォルトの名無しさん :02/03/27 10:22
>>400
ソースには<a href="menu:1">1</a>とか記述しておいて、BeforeNavigate2イベント
を取ってるだけじゃないかと。
で、WebBrowserコントロールには「ナビゲートのキャンセル」を伝えておいて自前で
ポップアップメニュー表示。

403 名前:デフォルトの名無しさん :02/03/27 14:19
DelphiでTWebBrowserを使ってブラウザ作ってます。
OnNavigeteComplete2でTargetFrameNameを知りたいのですが
どうすれば出来ますか?

404 名前:デフォルトの名無しさん :02/03/27 14:55
>>403
NavigateComplete2イベントではターゲットフレームは通知されません。
代わりにBeforeNavigate2を使うべし。

405 名前:デフォルトの名無しさん :02/03/27 17:45
HTMLファイルを読む→gif表示部分を削除したHTMLファイルを作成→IEコンポに読ませる。
ってソフトでもやっぱUNISYS怒る?

406 名前:デフォルトの名無しさん :02/03/27 18:38
怒らないんじゃない?
板違いっぽいのでsage

407 名前:403 :02/03/27 19:31
http://members.tripod.co.jp/buppii/SampleBrowser1.zip
↑こんな感じ(ソースのみ)で戻ると進むの履歴を考えているので
やっぱり、なんとかOnNavigateComplete2でTargetFrameNameを知りたいのですが、
難しいですか?
初心者なんでツッコミどころ満載&見づらいソースだと思いますが、
どなたか見て意見をくれると有り難いです。


408 名前:404 :02/03/27 19:42
>>407
履歴とNavigateComplete2の関係がよくわかりません。
教えてプリーズ。

409 名前:405 :02/03/27 20:21
>406
 げ、板違いなのか。話題に出てたからいいと思ったのに・・。
ごめんなさい。

 ところで、IEコンポ自体にはGIFを読み込む機能は付いてないんですか?
IEを利用する上でGIF表示機能が付くんですか?って、これも板違いかな。わからんなった。

410 名前:405 :02/03/27 20:45
わあ、だめだ。ドラッグ&ドロップに対応しちゃってる。これじゃUNISYSに怒られる。
解除の仕方が分からん。

411 名前:403 :02/03/27 21:08
407のソースで、
SL1にTargetFrameNameを仮保管
SL2はフレームのあるページのTargetFrameNameのリスト
SL3はTargetFrameName
SL4は読み込んだURL
SL5はLocationURL(フレーム内のページを読み込んだ時にSL4のURL <> LocationURLなのでSL4とは別に格納しておく)
SL6はLocationName
SL7はフレームのあるページを読み込んだときに
最初にそれぞれのフレーム内に読み込まれるページのURLのリスト

で、全てを同時にリストに加えれば、
例えばSL3.Strings[3]はSL4.Strings[3]のTargetFrameNameとなり期待通りに動くのですが、
OnBeforeNavigateとOnNavigateCompleteの起こる回数が合わなかったり(何故かOnNavigateCompleteが多く起こる時がある)、
OnBeforeNavigateとOnNavigateCompleteの起こる順序が違う(重いページ→軽いページの順序で立て続けに読み込んだ時)とかの理由で違う順序で格納されてしまい、
期待通りの動きをしない事があるので、
同時にそれら全てを知りたいのです。
ちなみに407のソースはまだ完全じゃないので、
この問題が解決されてもまだちゃんと動かない状況があります。

>>408
OnNavigateCompleteの時にSL2〜SL7の履歴のリストに、新たに読み込まれたページの履歴を加えたいのです。(OnBeforeNavigateだとLocationNameが分からない)
で、それと同時にWebBrowser1.Tagに今表示しているページがSL4の中の何行目かを格納しておいて、
[戻る]、[進む]を押したときに、例えば4つ戻るならSL4.Strings[WebBrowser1.Tag -4]に格納されているURLを、SL3.Strings[WebBrowser1.Tag -4]に格納されているTargetFrameNameに読み込むようにしたいのです。

うぅ、長い上に分かりづらいっぽい…


412 名前:404 :02/03/27 22:26
>>411
> うぅ、長い上に分かりづらいっぽい…

うん。ぜんぜん分かりません。
が、「フレーム内での遷移をタイトルつきで履歴に格納したい」のだと勝手に解釈して
みる。
BeforeNavigate2でURLとフレームターゲットを記録しておいて、NavigateComplete2
かDocumentComplete2でURLに対応するタイトルをセットすればいいんじゃない?

413 名前:404 :02/03/28 00:19
>>412
×DocumentComplete2
○DocumentCompleted

414 名前:デフォルトの名無しさん :02/03/28 10:32
>>402
ということはJavaScriptでlocation.hrefとかを使って
メニューのある項目を児童選択 とかはできなさそうですね。

hrefにmenu:1とか放り込めばメニューが出るとこまでは確認したんだけど
その先は無理か・・・

415 名前:デフォルトの名無しさん :02/03/28 12:06
>>414
それって、スキン側でブラウザを操作しようとしてる?
かちゅ〜しゃってスキン使えたっけ。

416 名前:デフォルトの名無しさん :02/03/28 12:34
>>415
スキンつかえますよ。かなり自由度あります。
およそHTMLで表現できるものはひととおりOKです。

417 名前:デフォルトの名無しさん :02/03/29 03:08
>>402
リンクの上にマウスカーソルを合わせると、バルーン?が出るのは
どうやるのでしょうか?

っていうか、クリーム色のウインドウみたいなやつってバルーンと
いう名前でいいのかな?

418 名前:デフォルトの名無しさん :02/03/29 10:02
>>417
Windowsでは「ツールチップ」「ツールヒント」という名称のほうが一般的かと。
表示方法は以下を参照。
http://msdn.microsoft.com/library/?url=/library/en-us/shellcc/platform/commctls/tooltip/reflist.asp?frame=true
開発環境によっては、簡単に使えるためのライブラリ/コンポーネントがあります。
MFC(VC++)ならCToolTipCtrlとか、DelphiならTHintWindowとか。
VBだと…ToolTipTextプロパティを動的に変更、かな?(よくしらない)

表示タイミングについては、「マウスポインタがリンクの上に乗った」ことを何らかの
手段で取得することになるでしょう。
詳細はMSDN Libraryで。

419 名前:403 :02/03/29 16:05
>>412
>「フレーム内での遷移をタイトルつきで履歴に格納したい」

うん、そうです。たぶん。
でも、むずかしいです。
なかなかIEと同様のモノが作れないです。
もっと色々詳しくなってからじゃないと無理かなぁ…
どっかに良いサンプル無いだろか…

420 名前:デフォルトの名無しさん :02/04/01 05:31
CHTMLViewを使ってます。
現在表示されているHTMLをクリアして新しい文字列を表示させるには
どうすればよいのでしょうか?
文字列を表示させるのはinnerHTMLでできそうですが、
その前にページをクリアする方法がわかりません。

421 名前:デフォルトの名無しさん :02/04/01 05:46
たんなるおもいつき
Navigate("about:blank");

422 名前:デフォルトの名無しさん :02/04/01 05:59
innerHTMLに""をputしたらダメなん?

423 名前:デフォルトの名無しさん :02/04/01 08:34
Getbody()->PutinnerHTML()で、表示する内容を置き換えることは
できたのですが、この場合body内しか変更できません。
head内も含めて丸ごと変更するにはどうすればよいのでしょうか?

424 名前:デフォルトの名無しさん :02/04/01 13:13
get_html()

425 名前:デフォルトの名無しさん :02/04/08 00:45
メンテ

426 名前:デフォルトの名無しさん :02/04/10 15:51
スクロールバーをフラットスタイルで表示するにはどうすればよいですか?

427 名前:デフォルトの名無しさん :02/04/11 23:34
>>426
スタイルシートつかえば?

428 名前:デフォルトの名無しさん :02/04/12 20:55
>>427
(;´д⊂  イジワルシナイデオシエテヨ

429 名前:デフォルトの名無しさん :02/04/13 14:18
>>428
http://tohoho.wakusei.ne.jp/www.htm
おれはここのを参考にしたけど

430 名前:デフォルトの名無しさん :02/04/13 15:16
>>426,428
IE5.5以降ではリソース節約&高速化のために、内部の描画をすべて独自に行って
います(以前はフレーム分割では複数のウィンドウが生成されていたが、今は1つの
ウィンドウで同等の処理が行われる)。
スクロールバーなども標準のコントロールを使わず、IEの独自描画です。

ということで、>>427に1票。

431 名前:428 :02/04/13 18:26
>>427-430
そっかー、どうもありがとう(@´ー`@)

432 名前:デフォルトの名無しさん :02/04/20 23:41
SSL通信しているときのサーバ証明書を取得したいんですが、
わかりませんか?右下のアイコンをクリックすれば見れるんで
取れると思うんですが。

433 名前:デフォルトの名無しさん :02/04/21 00:41
>>420
レジストリをabout:blankで検索するとIEの設定に
C:\WINNT\System32\blank.htm
ってあるけど動的に作っているのか実際には見つからない。

わからないので空のHTMLファイルを表示してお茶を濁してるけど、
これだと普通のページを表示するのと同じだからイベントの処理が必要に
なって面倒だね。

誰かいい方法を教えて。

434 名前:デフォルトの名無しさん :02/04/21 15:10
CHtmlViewで「ダイアルアップの接続」を出す方法と
「戻る」「進む」が有効かどうか調べる方法を教えてください。
「ダイアルアップの接続」はオンラインの状態でネットにアクセスすると自動的に出ますが
接続をキャンセルすると(オフライン状態にすると)以降は出てくれません。
IEだと「オフライン作業」を解除してオンラインにして他のページを表示したり更新すれば
「ダイアルアップの接続」が出ますが CHtmlView だと出ません。
オフラインの切り替えは SetOffline で行っているんですが間違っていますか?


435 名前:デフォルトの名無しさん :02/04/21 21:20
>>434
[InetSDK] WebBrowser コントロールでの [進む] と [戻る] ボタンの使い方
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp163%2F2%2F82%2Easp&LN=JA

436 名前:デフォルトの名無しさん :02/05/01 21:42
さげ

437 名前:デフォルトの名無しさん :02/05/17 09:45
COMスレから紹介されてやってまいりました。どうか力をお貸しくだせえ。

[やりたいこと]
1. MFCアプリでHTMLファイルからHTMLドキュメントオブジェクトを作成。
2. そのオブジェクトにDOMのメソッドで変更を加える。
3. 変更結果をファイルに保存。

で,いくつか方法を試してみたのですがなかなかうまくいきません。

A. HTMLエレメントからIHTMLElement::GetouterHTML()で文字列を取り出して
CFileを使ってがりがり書く。
→モトのHTMLファイルのエンコーディング方法に合わせてエンコードしなくては
いけないので気が遠くなりそう。

B. HTMLドキュメントからIPersistFileを取得してSaveメソッドで保存。
→なぜか変更前の状態で保存される。

C. それならばともうひとつHTMLドキュメントをCoCreateInstanceして
モトからinnerText()で取得した文字列をwrite()で書きこむ。
→書き込み中にスクリプトエラー。onloadでしかスクリプトは呼ばれないはずなのに…。

D. じゃあこれでどうだとwrite()ではなくinsertAdjacentHTML()で
ドキュメントを複製してIPersistFile::Save()。
→insertAdjacentHTML()を呼ぶ前の状態で保存される。

E. ためしにIHTMLDocument2::execCommand( "SaveAs" )で保存。
→MSHTML.DLLからアクセスバイオレーションが飛んでくる。
ブラウザウィンドウが存在しないから?

というわけで万策尽き果てた気分です。どーにかならんでしょうか。
「こういうメソッドはどうよ?」くらいでもいいのでアドバイスもらえると嬉しいっす。

438 名前:デフォルトの名無しさん :02/05/17 14:29
A. HTMLエレメントからIHTMLElement::GetouterHTML()で文字列を取り出して
CFileを使ってがりがり書く。
→モトのHTMLファイルのエンコーディング方法に合わせてエンコードしなくては
いけないので気が遠くなりそう。
---
そんなにむつかしい/面倒くさいことか?



439 名前:437 :02/05/18 09:11
>>438 日本語以外のエンコーディングも使われる可能性大なんでちとヘビーかなと。
いざとなったら「何語だろうとUnicodeでしか出力しない!」つって逃げますけど…ちょっとカッコワルイ。

440 名前:デフォルトの名無しさん :02/05/23 01:52
>>437
DISPID_AMBIENT_USERMODEでデザインモードに切り替えないと
保存できないような気がするYO;

441 名前:437 :02/05/23 08:56
>>440 サンクス。WebBrowserはhostしてないもんでEdit云々の発想はなかったな。
とりあえずやってみよう。

442 名前:437 :02/05/23 10:45
ファイル読み込み前にIHTMLDocument2::put_designMode("On")したらでけました。
440 は神!
しかしちゃんとHTMLドキュメントにアプリをAdviseしたのにIAdviseSink::OnSave()もOnRname()も呼ばれない。
呼ばれないのにIPersistFile::Save()はナニゴトもなく終わっている。
…いいのか?

443 名前:デフォルトの名無しさん :02/06/02 11:21
OnBeforeNavigate2がアドレス入力から来たかそうでないかを
判定する方法はありますでしょうか?

444 名前:デフォルトの名無しさん :02/06/02 13:57
>>443
レジストリのアドレス入力の履歴を調べればいい。と思う。

445 名前:443 :02/06/02 19:38
ありがとう。
やってみます。

446 名前:デフォルトの名無しさん :02/06/03 11:11
Document.body.innerHTML
で表示中のHTMLを取得して、
Document.write
で出力というのを繰り返すと、
どんどんHTMLが崩れていくんですが何故でしょうか。
なんかヘッダの中のスタイルシートが消滅したり、へんな位置で改行が入ったり。

447 名前:デフォルトの名無しさん :02/06/04 14:00
>>446
innerだからというオチじゃないよね。

448 名前:デフォルトの名無しさん :02/06/04 22:43
>>446
もしかして、sleepとか入れながら、ループでガシガシ追加していますか?
前に、ファイルから少しずつwriteしていったら似たようなことになったことがある。
解決方法は。。。知らない。諦めたから(w


449 名前:デフォルトの名無しさん :02/06/05 14:36
>>446,448
試してないが、
ReadyStateがREADYSTATE_COMPLETEになる前に
Document.writeするとダメとかかも。

450 名前:デフォルトの名無しさん :02/06/09 13:46
IEコンポ上で右クリックしたときに表示されるポップアップメニューの表示を抑制する方法ってありますか?

451 名前:デフォルトの名無しさん :02/06/09 13:59
IDocHostUIHandler::ShowContextMenu

452 名前:デフォルトの名無しさん :02/06/13 23:19
BHOからコンテナであるIEのアンビエントプロパティを
変更することは可能でしょうか?


453 名前:デフォルトの名無しさん :02/06/13 23:32
BHOは良く知らないけど、IWebBrowser2を持ってれば
可能だと思う。

454 名前:452 :02/06/14 02:25
>>453
IWebBrowser2 は取れてますので
色々やってみます。


455 名前:名無しサンプリング@48kHz :02/06/14 12:52
_blank
で新規ウインドウを生成しないようにしたいんですが
どうしたら良いでしょう…(同一ページでリンク先に飛ばせたい)
ちなみに、BCBのTCppWebBrowserコンポーネントです。
ご存知の方がいましたらば情報キボンです!

456 名前:デフォルトの名無しさん :02/06/15 01:43
ttps://sourceforge.jp/projects/foolsnote/

こんな事やっているやつを発見し、俺と同じくBCB使ってるというから
ソースをダウソしてみたら、BCB6でつくってやんの・・・・・
おれみたいなDQNじゃ、ステップ実行しないとわかないよぉ。

BCB5以下で書かれた、参考になるようなソースどっかにないっすか?


457 名前:デフォルトの名無しさん :02/06/15 14:34
>>455
VC++なので、BCBでどうなるかは知らないが、
OnNewWindow2で、新ウィンドウの作成をキャンセルした後、Navigate2する。

か、OnNewWindow2で、IDispatch** argな引数の*argに、thisのIDispatch*を
入れて新ウィンドウの作成はキャンセルする。

458 名前:デフォルトの名無しさん :02/06/15 18:32
>>455
BCB だと、OnNewWindow2 で、Cancel はせずに
*ppDisp = CppWebBrowser1->Application;
でいけるはず。


459 名前:445 :02/06/15 21:18
>>457-458
レス有難うございます!
で、新規ウインドウの抑止は出来たんですが
canselだと飛び先のURLが取得できません。
*ppDisp = CppWebBrowser1->Application;
では現在の窓でリンク先を表示してくれません…。
>>458さんは飛べてますか?


460 名前:458 :02/06/16 20:24
>>459
あれー?うちでは飛べるんだけど。BCB 5 と 6 でテスト。

461 名前:名無しサンプリング@48kHz :02/06/18 00:11
>>460
BCB5なんですがダメなんですよ…
なんでだ〜
明日BCB6で試してみます!サンクスこ!

462 名前:デフォルトの名無しさん :02/06/19 11:52
Delphi6 & IE 5.5SP2 ですがやはり ppDisp に自分自身を指定すると
だめです。別のWebBrowserを指定すれば飛ぶんですが。

IEのバージョンは関係するのかな。

463 名前:458 :02/06/19 17:48
>>462 IEのバージョンは関係するのかな。
あ、それかもです。うちは IE5.01。

464 名前:デフォルトの名無しさん :02/06/19 22:11
5.0と5.5はカナーリ違うという罠。

465 名前:デフォルトの名無しさん :02/06/29 10:32
IEコンポーネントを使わなくても良いかもしれませんが,
IEのプロクシ設定を取得する方法ってありませんか?

466 名前:デフォルトの名無しさん :02/06/30 00:31
>>465
レジストリの
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings


467 名前:デフォルトの名無しさん :02/07/01 12:14
>>466
サンクスコ

468 名前:465 :02/07/03 00:26
さんきうう

469 名前:デフォルトの名無しさん :02/07/08 11:08
CComPtr< IOleObject > obj;
obj.CoCreateInstance( L"Shell.Explorer" );
CComQIPtr< IOleClientSite > csite = &implements;
obj->SetClientSite( csite );
obj->QueryInterface( IID_IOleInPlaceObject, (void**)&ipo );
result = obj->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, csite, 0, g_hwnd, NULL);

CComQIPtr< IWebBrowser2 > ie = obj;
CComBSTR url = "about:blank";
ie->Navigate( url, NULL, NULL, NULL, NULL );

CComPtr< IDispatch > pDisp;
ie->get_Document( &pDisp );
CComQIPtr< IHTMLDocument2 > document = pDisp;
if ( document ) {
 CComVariant color( "#000000" );
 document->put_bgColor( color );
 CComPtr< IHTMLElement > body;
 if ( SUCCEEDED (document->get_body( &body ))) {
  assert( body ); ※
 }
}

上のソースで、どうしても※のところでassertに引っかかるんですが、どうしてなんでしょうか?
戻り値はSUCCEEDEDが返ってきているので、正常なはずなのに、どうしてもbodyが取れません。


470 名前:デフォルトの名無しさん :02/07/08 12:22
assert( &body);
というオチ?

471 名前:デフォルトの名無しさん :02/07/08 12:50
get_bodyとかはSUCCEEDナのにもかかわらずNULLを返すことがある。

この場合はレンダリングが終わってないか、bodyなんて存在しない
からだと推測。

472 名前:デフォルトの名無しさん :02/07/08 13:46
>>471
うぃす、どもです。
Navigate直後だから終わってない&about:blankでドキュメントが存在しないって事ですかね。
DocumentCompleteでやれば出来そうですね。

473 名前:デフォルトの名無しさん :02/07/08 15:59
>>472
てことは、470が指摘したのは469のタイプミスだったのか?
まあ、Navigate直後にDocument取得は正気の沙汰じゃないが。

474 名前:デフォルトの名無しさん :02/07/08 19:21
お気に入りの順番を保存してる
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites
の構造って既に調べた方います?

ちーともわからなかった。


475 名前:デフォルトの名無しさん :02/07/08 19:25
つか、donutのソース嫁よ……
mtlweb.hあたりにあるから。

476 名前:474 :02/07/09 21:35
ありがとうです。
早速ソースを googleに助けてもらって見てみました。

typedef struct _tagCFavoritesOrderData
{
DWORD size;
DWORD priority;
ITEMIDLIST idl; // relative idlist
} _CFavoritesOrderData;
MtlWeb.hから抜き出してみると上の構造体に
順番に流し込んでるように思えたんですが

{サイズ(4バイト)→順番(4バイト)→データ}→{サイズ(4バイト)→順番(4バイト)→データ}.....
--------------+-------------------|
                  サイズ

と言う構造と言うことでよろしいんでしょうか?

さらに、この「ITEMLIST」はどういう型なんでしょうか?


C++は勘でしか読めないC#厨なんでごめん


477 名前:デフォルトの名無しさん :02/07/10 10:09
ShellNamespaceで検索しろ。
簡単に言うと、 c:\app\dirだと
c: app dir それぞれの要素に分かれて、リスト状に繋がれた物。

478 名前:デフォルトの名無しさん :02/07/23 16:12

フレームの中のcontentWindowにアクセスできる場合とできない場合があるのは
なぜでしょう? バグがあって、document.all からアクセスしないといけないのは
解ったのですが、それでもアクセスできないページがあります。

ところで、モジラのDOMのDLLってあるんでしょうか?

479 名前:デフォルトの名無しさん :02/07/23 16:15
>>478
追加です、今はDelphiやVBから触っています。
こんな試行錯誤をVCでやってると氏にますね…

480 名前:デフォルトの名無しさん :02/07/23 16:27
>>479
さらに追加。 >>129さんと同じ問題のようです。
どうも未解決っぽいですね。

フレーム間の参照は、セキュリティの関係で
クロススクリプティングを行わせないために
制約がかかっているような気配です。
例外的にドメイン名直下のファイルはやれるようですが、
これが関係しているのかもしれません。

DHTMEditコントロールなども触ってみましたが、
フレームページではエラーが出るようです。

他にWindowsで動くDOMがあったら教えてください。


481 名前:デフォルトの名無しさん :02/07/24 01:16
>>480
Cross-Frame Navigate でぐぐるといろいろ出てきますな。
確か、MSのページにはっきり制限事項として書かれていたのを
読んだ覚えがあるけど、大分前なのでソースを忘れてしまいますた。

抜け道がないわけではないようだけど、セキュリティ上での制限
つってるくらいだからここに書くのはまずかろうな…

482 名前:デフォルトの名無しさん :02/07/27 11:30
>481

モジラのDOMいれて触ってみました。
VBでオブジェクトをインスペクトして(オブジェクトインスペクタじゃなくて、実行中になかを見て)みたのですが、どうもエラーが出てIEのDOMの用には追えませんでした。
またIDispatchによるアクセスもエラーでした。(オマケでDOMインスペクタなんてものがついてるのだから、DLLを直接触ればやれるのだと思うけど、そっちはまだやってません)
Operaや、NetFrontなんかもDOMにアクセスするインターフェースは用意されてるのかな?
よかったら教えてください。駄目なら、おそらくモジラのLibを直接触るのが早そうです。


483 名前:デフォルトの名無しさん :02/07/28 11:50
delphiでIEベースのブラウザを作っているのですが、User Agentの変更をしようと思っています。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settingsをい
じればよいことは分かったのですが、mshtml.dllの再読込が必要らしく、その方法が分かりませ
ん。どなたかご存じでないでしょうか?

484 名前:デフォルトの名無しさん :02/07/28 12:16
>>478-482
mozilla関連はこっちでやるべし。
ttp://pc3.2ch.net/test/read.cgi/tech/1023546699/l50

485 名前:デフォルトの名無しさん :02/07/28 13:24
>>484
これ、趣旨が違います。
開発の方針も決まったようですが、あまり深い部分は触らないようです。


486 名前:デフォルトの名無しさん :02/08/10 14:34
IEのコンテキストメニューから今見てるページをネスケで起動することってできますか?


487 名前:デフォルトの名無しさん :02/08/10 16:13
結局、mhtファイルとして保存する手段は無いのでしょうか?
ライブラリはOutlookのものを使用するらしいのですが。

488 名前:デフォルトの名無しさん :02/08/31 18:03
 

489 名前:デフォルトの名無しさん :02/09/11 11:00
.NETでwebbrowserコンポーネントを使っているんですが、mshtmlのイベントの
挙動が変で困ってます。

たとえば
どっかのページにNavigateしてからDocumentCompleteイベントで
IHtmlDocument2 document = (IHtmlDocument2)webbrowser.Document;
foreach(HTMLAnchorElement link in document.links)
{
link.HTMLAnchorEvents2_Event_onclick +=
new mshtml.HTMLAnchorEvents2_onclickEventHandler(OnLinkClick);
}
とし、

private bool OnLinkClick(IHTMLEventObj obj)
{
obj.cancel = true;
DoSomething();
return false;
}
で、リンクのクリックイベントを捕まえて何らかの処理をさせたいんですが、
たまにイベントハンドラが実行されないことがあります。(リンクへ飛んでい
ってしまう)。全く動かないのではなく3回に2回ぐらいはちゃんとDoSomethin
g()が実行されます。原因が全くわからないんですが、どこか変ですかね??
それともComInterOpのバグ??

490 名前:デフォルトの名無しさん :02/09/15 02:25
IEコンポーネントって、具体的に何をさすのでしょうか?
WinInetのAPIを使うこととは違いますか?

それとも、コンパイラによって具体的な物が変わって
くるのでしょうか?
手元にあるコンパイラはVS6とBCB5なんですが。。。。

おせーて下さいっ!!


491 名前:デフォルトの名無しさん :02/09/15 02:34
CHtmlView / TCppWebBrowser

492 名前:デフォルトの名無しさん :02/09/15 03:18
SHDOCVW.DLL

493 名前:デフォルトの名無しさん :02/09/20 09:46
MSDN(Web)の情報、増えたんじゃない?
米国司法省とかとの和解案の反映の結果?
いずれにせよ、ちと興奮気味に見てます。

494 名前:デフォルトの名無しさん :02/09/20 23:42
245 :デフォルトの名無しさん :02/09/20 15:43
http://biztech.nikkeibp.co.jp/wcs/leaf/CID/onair/biztech/biz/207451
おお、大手企業はどんどん金を出しつつあるぞ。
どうする?アイフル。

246 :デフォルトの名無しさん :02/09/20 16:42
日本国内でやっている分には問題ないっつってるだろ。

247 :デフォルトの名無しさん :02/09/20 17:17
>>246
インターネットで公開したら世界中が対象範囲だろ

250 :デフォルトの名無しさん :02/09/20 20:47
ブラウザ作って配布すると
gif/jpegの特許であぼんされるってホントですか?

251 :デフォルトの名無しさん :02/09/20 21:03
ホントです。

252 :デフォルトの名無しさん :02/09/20 23:34
>>250
テキストブラウザにしませう


495 名前:デフォルトの名無しさん :02/09/27 02:27
VB6.0でWebBrowserを使いVBのフォームの中にページを表示させるようにしました。
それでなんですが表示されたページの懸賞などの入力フォームなんかに自動入力させたいのですが
教えてください、お願いします

496 名前:495 :02/09/27 02:30
すいません一行抜けてしまいました。
>VB6.0でWebBrowserを使いVBのフォームの中にページを表示させるようにしました。
>それでなんですが表示されたページの懸賞などの入力フォームなんかに自動入力させたいのですが
どのようにすればいいのでしょうか?
>教えてください、お願いします




497 名前:デフォルトの名無しさん :02/09/27 22:58
>>495-496
掲示板荒らしプログラムを作るの?だったらHTTPでPOSTするような
プログラム書いたほうが早いよ。
それとも、本当に懸賞の入力フォームに自動で入力するようなものを
作るの?そんなのサイトによって入力するのが違うから汎用性がないよ。
もしやるとしたら、form.element.valueに入れれば入力されると思うけど。


498 名前:デフォルトの名無しさん :02/09/28 15:22


*** 注意 ***

InternetExplorerのインスタンスを利用するばあい、
UNISYSにLZWの特許の使用許可を得なければならない可能性があります。
しかし、アメリカにおけるマイクロソフトの独占禁止法違反の裁判では、
InternetExplorerは、「ウインドウズの一部ではなく、製品である」と判断されたようです。
インスタンスの利用は、製品の利用であると考えると、特許の使用許可はいらないようにも思えます。

作成したアプリケーションを配布する場合、米国UNSYSにお問い合わせください。



499 名前:デフォルトの名無しさん :02/10/02 16:51
C#.NETでIEコンポーネントを使って勉強していたらNavigate()の呼び出しで
リソースが使用中云々という例外が飛ぶようになり直りません。
原因と対処方法をご存知の方がいればぜひご教示ください。


500 名前:デフォルトの名無しさん :02/10/02 19:45
とりあえず 500 get age.


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.