IEと同じHTMLソース表示を実装するには?

解決


みけにゃん  2005-01-21 20:39:00  No: 12807

かなり昔にお世話になったみけにゃんです。
Acty(acty.sakura.vg)のタブブラウザサンプルをお手本にして
タブブラウザを作ってるのですが、IEの[表示(V)]-[ソース(C)]の機能を
実装しようとして分からなくて困っています。

Googleとかで検索しても全然これについては見つからないので
かなり悩んでいます。もし分かる人がいましたら教えてください。


ふじっこ  2005-01-21 21:36:18  No: 12808

参考になるか、自信ありませんが・・
ブラウザで表示すべき内容は、一時フォルダおよびファイルに保存しておけば
中身を表示するフォームを作って呼び出すだけでは、だめなんですかね?


にしの  2005-01-21 23:23:28  No: 12809

こんな感じでどうでしょう。
WebBrowserがどのコンポーネントか解りませんが、Document(IHTMLDocument2インターフェース)プロパティを、IOleCOmmandTargetインターフェースにキャストして、Execを使えばできると思います。

IOleCommandTargetは、ActiveXユニットに定義されています。
CGID_WebBrowser, HTMLID_VIEWSOURCEは、IEConstユニットに定義されていると思います。

UIWebBrowserで動作確認済です。
# WinXPproSP2+Delphi7pro+IE6.0SP2

var
  ComTarget: IOleCommandTarget;
  pIn, pOut: OleVariant;
begin
  ComTarget := WebBrowser.Document As IOleCommandTarget;
  pIn := NULL;
  pOut := NULL;
  ComTarget.Exec(@CGID_WebBrowser, HTMLID_VIEWSOURCE, 0, pIn, pOut);
end;


みけにゃん  2005-01-22 01:02:50  No: 12810

環境はWindows2000SP4で以前のメーラの質問のときのように
Delphi6 PersonalにUIWebbrowserを入れてます。
→最初はTWebbrowserだったけれどキー入力部分でこちらにしました。

ちなみにメーラの開発環境はVC++環境にしちゃいました。≡>_<≡


みけにゃん  2005-01-22 01:24:20  No: 12811

一応解決したのですが・・・。
Nullが未定義とかいわれてしまいました。T_T


にしの  2005-01-22 04:10:06  No: 12812

NULLはDelphi7からですかね。
Delphi7ではVariantsに定義されているのですが。
要は、pIn, pOutをVariantのNULL(タイプ=varNull)にしてやればよろしいかと思います。
未使用っぽいので、代入せずに呼べばよいのかも。


HOta  2005-01-22 05:58:38  No: 12813

VariantはVariantsに定義されているようですから、
usesにVariantsを追加すればどうでしょう。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加