IEコンポーネントを使い倒すスレ

このエントリーをはてなブックマークに追加
ツールボックスを右クリックしてカスタマイズ
COMのタブにIEっぽい名前のがあるからそれにチェック
ダイアログを閉じてIExplorerのアイコンが出ればOK
934932:03/09/18 12:23
>>933さん
有難う御座います。
おかげさまで出現しました。Explorerという名前で
いいんですよね。地球の。
935933:03/09/18 12:39
>Explorerという名前
あ、そうだったスマソ
936デフォルトの名無しさん:03/09/20 14:29
VB5でIEの履歴を取得したいのですがどうしたらよいでしょう?
ブラウザ機能は組み込まないプログラムから、IE系のブラウザで現在見ている
ページのURL(最後に訪問したURL)を取得したいと思っています。
Historyフォルダの下の最新のindex.datを直読みして取得しようとしたのですが、
どうも最後の履歴はどこかにキャッシュされているらしく
すぐにはファイルに反映されないので、正式?な手順で取得しないと駄目なようです。
コンポーネントの操作等で取得できますでしょうか?
過去ログを見た限りでは、CであればIUrlHistoryStgあたりで取得できそうなのですが
VBではどのように扱えば良いのかが判りません。
もしくは履歴データを見るのではなく別のアプローチで
現在ブラウザで見ているURLを取得する方法がありますでしょうか?
取得方法や参考ページ等をを教示頂けるとうれしいです。
よろしくお願いいたします。
>>936
VB5はさすがに古くて分からんなあ。
IUrlHistoryStgはCOMだからVBからでも使えるけど、VB5しか持ってないなら
idlファイルが無さそう。
>>936
>IE系のブラウザで現在見ているページのURL(最後に訪問したURL)を取得したい

現在見ているページのURLを取得したいだけなら
「Microsoft Internet Controls」を参照設定して、
Dim v, sw As New SHDocVw.ShellWindows
For Each v In sw
Debug.Print v.LocationURL
Next v
939デフォルトの名無しさん:03/09/21 23:56
>>937-938
ありがとうございます。
938の方法でIEのURLは取得することが出来ました。タイトルも取得できて便利。
ただIEのコンポーネントを利用しているタブブラウザの情報は取れないみたいですね。
最近はタブブラウザの愛用者が多そうだからなぁ。
VBをバージョンアップするなりVC++に乗換えるなりして
履歴を参照する道を探った方が確実なのかな?
>>939
目的がイマイチはっきりしてないからどれがお勧めか分からんなあ。
一番最後に読み込んだURLとなると、IUrlHistoryStgは時間順に取ってくるとか
できないから総ナメになるよ。
履歴100日とかの設定してる人もいるから「遅え!」て言われる場合もあると思う。
そういやーgif問題ってどうなったのよ?
いまだにIEコンポ入りのソフトだめなの??
あと9ヵ月の辛抱
943デフォルトの名無しさん:03/09/24 16:06
WinXP SP1
VC6.0を使用しています。

IWebBrowser2::Navigate2 でローカルフォルダ(C:\など)を表示させ、
10秒ほど待ってからアプリを終了させると、
ウィンドウは消えるのですが、アプリ自身は終了せずに常駐してしまいます。
(タスクマネージャで確認)

Webページを表示させる場合は再現しないので、
ローカルフォルダ表示の場合には特別な終了処理などが必要なのでしょうか?

以下のページにあるサンプルコード(iwebbrowser2.lzh)でも再現します。
http://www.nitoyon.com/vc/tips/ie_component.htm

よろしくお願いします。
>>943
WinXP SP1とWin2k SP4で、
リンク先のiwebbrowser2を試したが、
特に何の問題もなかった



945943:03/09/24 21:17
私の環境では、10回に9回は再現するので、
環境依存なんですかね?

ちなみにIE6.0SP1で、
OSはXP のPro版です。
946c ◆.AjXxeRXqw :03/09/25 16:24
基本的な質問で恐縮ですが、
あるページを参考に以下のソースを書いたのですが、

IHTMLDocument2 document = (IHTMLDocument2)axWebBrowser1.Document;

型または名前空間名 'IHTMLDocument2' が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。

となってしまいます。
参照設定にはMicrosoft.mshtmlは追加してあります。
usingなどの設定が必要かなと想像しているのですが、
イマイチ理解できずに悩んでおります。

基本的なことで申し訳ありませんが、ご指摘お願いします
>>946
間違ってないと思いますが。
VSがヘンでたまに参照解決できない時があるので、
ReleaseとDebugのコンボボックスを切り替えてコンパイルするとエラー出なくなったり
しますよ。
using mshtml;
または
using SHDocVw;
949943:03/09/25 21:47
自己解決しました。
case WM_DESTROY :
の直後に以下のコードを加えれば、
(何故か)正常に終了するようになりました。

CComQIPtr<IOleObject> pioo;

pioo = pWB2;
pioo->Close(OLECLOSE_NOSAVE);
pioo.Release();
950c ◆.AjXxeRXqw :03/09/26 00:14
using mshtml;を加えたところ名前解決できないとのエラーがでました。

しかし、参照追加設定で .NETタブの「Microsoft.mshtml 」を参照ではなく、
COMタブの「Microsoft HTML Object Library」に変えたところ解決できました。

mshtmlをusingするので「Microsoft.mshtml 」かと思っていましたが、違うんですね。
(このライブラリ名は紛らわしいですね。それをちゃんと調べれない私もダメですが)

>>947 >>948
ご指摘ありがとうございました。

951c ◆.AjXxeRXqw :03/09/26 00:32
ついでに聞いて申し訳ありませんが、
mshtmlとSHDocVwの違いって何なのでしょうか?
9523com:03/09/26 07:29
WinInetにてブラウザを開発しましたが、使用したPCでIEの不具合が発生しました。
IEで新しいウィンドウでリンクを開こうとすると、ウィンドウが開いた時点で、止ま りページが表示
されなくなります。一旦中止ボタンで中止し、更新するとURLが表示されるのですが、
止まってる時点でURLは表示されません。オフラインでは問題なく新しいウィンドウでも
表示できるので、新しいリンク先URLに飛ぶ時に問題が発生しているように思います。
このような症状についてわかる方いらっしゃたらよろしくお願いします。
WindowsXPでIE6の環境です。
「IEが特許侵害」評決、波紋はどこまで?
http://www.zdnet.co.jp/news/0308/18/ne00_browser.html

今の今まで知らなかったが・・・
誰だよこんなウンコな特許認めたやつぁ

>>952
言ってる意味がわからん。
URLが表示される/されないって具体的にどんな動作よ。
9543com:03/09/27 02:35
アドレスバーにURLが出ないのよ。新しいウィンドウの。
XPの場合、なんか新しいウィンドウで開くときにひっかかる感じで
すっきり出てこないじゃない?通常でも。
それがひっかかったまんまでページが表示されない状況ですわ。
でアドレスバーにURLがでてこないままで、一旦中止、更新すれば
出てくるって感じ。
955cs:03/09/27 05:31
ある認証ページのユーザIDとパスワードを自動で入力させ、
SUBMITボタンも自動で押すプログラムを作りたいと思っています。

一応、下(>>956)のコードで実現できています。
しかし、改良の余地は大きくあるように思えてしょうがありません。

下(>>956)のソースはinput項目を全部抽出し、ループさせて対象の項目を探しますが、
ループせず、直接、対象のinput項目(例ではid)を指定し、値をセットする方法はどのようにすればよろしいでしょうか?
やはり、最初から検索するしかないのでしょうか?
956cs:03/09/27 05:32
mshtml.HTMLDocument myDocument = (mshtml.HTMLDocument)axWebBrowser1.Document;

try{
mshtml.IHTMLElementCollection cAtags = myDocument.getElementsByTagName("input");

IEnumerator ee = cAtags.GetEnumerator();
while(ee.MoveNext()) {
mshtml.HTMLInputElementClass htmlInput = (mshtml.HTMLInputElementClass)ee.Current;

if(htmlInput.IHTMLInputElement_name.Equals("id")){
htmlInput.value= "testuser";
}else if(htmlInput.IHTMLInputElement_name.Equals("passwd")){
htmlInput.value= "testpass";
}
}

}catch(System.NullReferenceException err){
//省略
}finally{
IHTMLElementCollection forms = myDocument.forms;
IHTMLFormElement form = (IHTMLFormElement)forms.item(1,0);
form.submit();
}
957デフォルトの名無しさん:03/09/27 15:43
WebBrowserコントロールで画像は読み込ませないようにする(テキストのみのブラウザ)にする
方法を調べているのですが、ぜんぜん糸口が見えず苦悩しております。

どなたかお知恵を頂けないでしょうか?

↑マルチかよ
959デフォルトの名無しさん:03/09/28 11:42
Delphiなんですが、
HTMLのソースを参照するにはどうすればいいでしょうか?
960デフォルトの名無しさん:03/10/17 07:04
Webオブジェクトの中にWebページを表示させたとき、
Webページ領域にくぼんだような外枠がでてしまいます。
これを消す方法はありますでしょうか?

よろしくお願いします。
     /\___/ヽ 
    /    ::::::::::::::::\
    |  ,,-‐‐   ‐‐-、 .:::| 
   |  .゙  ̄"  |゙ ̄ " :::|   なんだかよく分からないけど
    |     ` '    ::|   ここにティッシュ置いときますね。
    \  ヽニニ='  ::/
    /`'ー‐---‐一'´\
   /         ::::i  ヽ
  |   |       :::;;l  |
 ̄_|,..i'"':, ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |\`、: i'、
  .\\`_',..-i
   .\|_,..-┘
>>960
body.style.borderをnoneに設定する
963デフォルトの名無しさん:03/10/18 07:40
>>962
ありがとうございます。助かりました。
>>739
拡大縮小の方法を希望
965 :03/10/19 13:45
width=1500
height=2800
966デフォルトの名無しさん:03/10/20 14:38
選択範囲のソースを取るのにhtmltextプロパティを使いますが、
途中なので<HTML>が付きません。それぐらいなら良いのですが、<TABLE>の途中だったりする場合もあります。
IEに適当につじつまをあわせてもらえると便利なんですが、そういうの無いですかね
自分でDOMを操作しなくちゃいけないんでしょうか?
967966:03/10/20 14:46
と思ったら、それがcreaterangeの役目だったのか。
968デフォルトの名無しさん:03/10/23 19:29
>>877
私もこの方法知りたいです。。(´・ω・`)
誰か知ってる人プリーズ!
>>968
つーか言語の申告もせずに訊かれてもなあ。
「DLCTL_NO_SCRIPTS」というキーワードを差し上げるので後は頑張れ。

>>969
助かりました(´▽`)
971デフォルトの名無しさん:03/11/09 09:39
age
WebBrowser で開いているドキュメント内にある
Flash のオブジェクトが直接CGIなどと通信していることを知る術はありますか?

ちなみにVB6使ってます。
973デフォルトの名無しさん:03/11/22 13:59
netstat
974デフォルトの名無しさん:03/12/07 02:42
VC++を使用しています。
ページの任意の位置にスクロールしたいと考えているのですが
どのようにすればできるのでしょうか?

現在、BODYのIHTMLElement2を取得して
get_scrollHeight()で最大のスクロール幅は取得できたのですが。
この辺どう?言語違うけど
http://hogehoge2001.at.infoseek.co.jp/note-delphi.html
>>975
できました。ありがとうございました。
977デフォルトの名無しさん:03/12/09 17:28
またスクロールネタになるけど・・・。
スクロールのイベント拾うにはどうすればいいんでしょう?。

言語はVCです。
>>977
VBだけど、

'----------Form1.frm----------
Option Explicit
Dim WithEvents win As HTMLWindow2
Dim i As Long

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
 Debug.Print "NavigateComplete"
 Dim wb As WebBrowser_V1, doc As HTMLDocument
 Set wb = pDisp
 Set doc = wb.Document
 Set win = doc.parentWindow
End Sub

Private Sub win_onscroll()
 i = i + 1
 Debug.Print "win_onscroll"; i
End Sub
979977:03/12/09 22:22
>>978
サンクス!
参考にしてやってみたらできますた!
980デフォルトの名無しさん:03/12/10 15:21
質問です。
自作ブラウザでイメージ ツールバーを有効にする方法はありますか?
こんな奴です↓
ttp://www.microsoft.com/japan/ie/using/howto/customizing/phototoolbar.asp
よろしくお願いします。
980超えたし、次スレどうするよ?
次スレタイトル案 その1
【IEが】IEコンポーネントを使い倒す駄スレ2【タブブラウザ化?】