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

このエントリーをはてなブックマークに追加
652デフォルトの名無しさん:2011/01/21(金) 19:51:38
文字コード
653デフォルトの名無しさん:2011/01/21(金) 21:34:25
そしゃないunicode
654デフォルトの名無しさん:2011/01/21(金) 22:40:57
>>651
おっしゃる通り、writeの後にcloseしたら、一発で解決しました。
ありがとうございます!

何年も前に書かれたコードだったのですが、IE8になってバグが顕在化したわけですね。
closeしないといけなかったとは、全く知りませんでした。
助かりました。
655デフォルトの名無しさん:2011/01/26(水) 08:08:10
C#のwebBrowserで表示の拡大をする方法はありますか?
656デフォルトの名無しさん:2011/01/26(水) 15:49:49
657デフォルトの名無しさん:2011/01/26(水) 18:54:26
お〜ありがとうございます。
さっそく試してみます。
658デフォルトの名無しさん:2011/01/26(水) 21:57:43
自分のOSの種類&バージョン情報と64/32bitどちらで動いてるかを知るにはどうすればよいですか?
659デフォルトの名無しさん:2011/01/26(水) 22:44:39
navigator.userAgent
660デフォルトの名無しさん:2011/01/27(木) 19:03:51
コンピュータのプロパティ
661デフォルトの名無しさん:2011/02/08(火) 00:32:53
こんにちは。
この度、C++プログラムでhtml上のtextareaに値が入れ方がわからなくて質問をさせて頂きます。

SHDocVwとMSHTMLを使い、html上のtextareaにデータを入れるのを以下のように実装したのですが、入れたはずの値が表示されません。(内部では入っているようですが・・・)
なぜ他の項目のように値がみえないのでしょうか?
よろしくお願いいたします。

SHDocVw::IWebBrowser2Pt m_pIE.CreateInstance(L"InternetExplorer.Application");
//希望のページに飛ぶ(中略)
MSHTML::IHTMLDocument3Ptr pDocument( m_pIE->Document );
pCollection = pDocument->getElementsByTagName(_bstr_t(L"textarea"));
for (long i = 0; i < pCollection->length; ++i)
{
MSHTML::IHTMLTextAreaElementPtr pText(pCollection->item(_variant_t(i)));
//!本文
if( !_wcsicmp(pText->name, L"項目名" ) ){
pText->value= _bstr_t( "hoge" );
}
}
【環境】Visual C++ 2008 Express Edition
662デフォルトの名無しさん:2011/02/10(木) 01:28:30
↑解決しました。サイト側がhtml方式でした。失礼しました。
663デフォルトの名無しさん:2011/02/11(金) 04:32:13
いみふ
664デフォルトの名無しさん:2011/03/07(月) 10:58:51.18
へえ
665デフォルトの名無しさん:2011/08/26(金) 14:20:53.62
復帰
666デフォルトの名無しさん:2011/09/29(木) 22:16:53.03
改行
667デフォルトの名無しさん:2011/12/23(金) 13:21:10.29
IEコンポーネントで簡易ブラウザを作ったのですが、
ポップアップ等新しいウィンドウが作られるときにInternet Exploreで作られてしまいます
これを自作簡易ブラウザで開くようにしたいのですがどうすればいいですか?
668デフォルトの名無しさん:2011/12/23(金) 13:35:59.97
669デフォルトの名無しさん:2011/12/23(金) 15:08:15.74
>>668
ありがとうございます
でも.NetのwebBrowser使ってるのでNewWindow2がない・・・
670デフォルトの名無しさん:2011/12/29(木) 15:16:54.05
デフォルトブラウザに設定すれば?
671デフォルトの名無しさん:2012/01/05(木) 00:49:30.91
Cで2ちゃんブラウザのようなものを作ってるんだけど、
AAサロンの「騙し絵」スレに期待通りの動作をさせるポップアップは
javascriptじゃなくこっちのプログラムで実装する必要がありますよね…?
mouseoverの実装めんどくさいよ。

http://toro.2ch.net/test/read.cgi/aasaloon/1313381315/l50
672デフォルトの名無しさん:2012/01/07(土) 23:06:29.01
>>671
邪道と言われるかもしれなけけど、メインウインドウをIEコンポーネントで作ればjavascriptでの実装も可能
673デフォルトの名無しさん:2012/01/09(月) 18:43:45.88
>>672
thx.
でもごめんもう実装してたり。

あとつまってるのは、write()で流し込んでclose()したhtmlが
scrollTo()で思った位置に飛ばせないとこで。
674デフォルトの名無しさん:2012/01/23(月) 17:38:27.39
scrollintoviewじゃね
675デフォルトの名無しさん:2012/02/02(木) 11:13:41.69
達人プログラマーさん、助けてください!!


既に開いているIEウィンドウで、以下の様なHTMLを表示しているとします。

〜〜(略)〜〜
<form name="myform">
...
<input type="hidden" id="hogehoge" value="XXXX" />
...
</form>
〜〜(略)〜〜

私の作ったアプリ側で、上記の XXXX にあたる部分を書き換えたいのですが、どうしたらよいでしょうか?
一応、

SHDocVw::IWebBrowser2Ptr pIE = (略) ; // pIE を取得
MSHTML::IHTMLDocument2Ptr pHtmlDoc = pIE->GetDocument(); // htmlドキュメントを取得
MSHTML::IHTMLElementCollectionPtr pHtmlCol = pHtmlDoc->forms; // フォームのオブジェクトを取得

まではできたのですが、ここから行き詰っています。
ぜひご教授下さい。。。
676デフォルトの名無しさん:2012/02/02(木) 11:59:03.39
そんなことしなくてもgetElementByIdで取ればよかろう
677デフォルトの名無しさん:2012/02/05(日) 21:55:47.84
IEコンポーネントでアプリケーション独自のクッキーを送ってあげたいんだけど、
IEが元から引っ張ってきているクッキーが邪魔して期待している結果にならない
IEが引っ張ってきたクッキーを消して独自のクッキーを送ってあげたいんだけど
そういうことってできますか?
678デフォルトの名無しさん:2012/02/06(月) 07:18:33.58
使い方教えて
679デフォルトの名無しさん:2012/02/06(月) 16:57:09.36
使い方教えてよ
680デフォルトの名無しさん:2012/03/04(日) 22:50:21.12
XMLHttpRequestの中身を見て、情報によってはリクエストを遮断させたいのですが、
BeforeNavigate2だとXMLHttpRequestのリクエストが取得できませんでした。
ブラウザがXMLHttpRequestでリクエストした情報を取得するには、何を利用したら良いのでしょうか?
ノウハウやそれが掲載されているサイトをご教授いただけると助かります。
よろしくおねがいします。
681デフォルトの名無しさん:2012/03/10(土) 22:52:43.61
C++ と WTL で Shell.Explorer.2 を使ってページを表示してるんだけど、
リソース中の mht ファイルを表示する簡単な方法があったら教えてくれ。
682デフォルトの名無しさん:2012/03/13(火) 19:08:02.17
mhtml:res://xxx.dll/xxx.mht
683デフォルトの名無しさん:2012/03/14(水) 22:39:15.16
>>682
ありがとう
684デフォルトの名無しさん:2012/03/18(日) 11:05:16.40
ウィンドウをリサイズするとちらつく(一瞬白くなる)んだけど
どんな原因が考えられる?
親ウィンドウの背景色は白じゃないし子ウィンドウをクリップしてる。
他にウィンドウは重なってない。
WM_SIZEを捕まえて再描画しないようにするとちらつかないけど更新されない。
685営利利用に関するLR審議中@詳細は自治スレへ:2012/04/06(金) 22:31:29.85
IWebBrowser2を設定UIに使ってるんだけど
マウスでの範囲選択はどうしたら無効にできる?
MOUSEDOWNでReleaseCaptureするとか
MOUSEDOWNってWM_LBUTTONDOWN?
フックするなりなんなりと
689685:2012/04/07(土) 23:40:05.88
サンクス
どうやら俺のレベルがまだ足りていないようだ。
もう少しわかるようになったらまた質問させてください。
タブ付きブラウザを作りたくて、以下のサイトを参照しvb.netで作成しました。
ttp://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm

しかし、一部のサイトを表示しようとしたところ、スクリプト関係がうまく
いってないのか、IE9で表示するとエラーもなく表示されるのに、
vb.netで作成したブラウザだとスクリプトエラーなのか、
[スクリプトエラー。xxが定義されていません」などと表示されます。

考えられる原因は何があるのでしょうか。
IE9が使っているコンポーネントとvb.netで作成したコンポーネントが
違うことが起因してエラーになってるのでしょうか。

以下のguidの指定が古いとかありますか?現在はIE9を利用しています。

<ComImport(), Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"), _
InterfaceType(ComInterfaceType.InterfaceIsIDispatch), _
TypeLibType(TypeLibTypeFlags.FHidden)> _
Public Interface DWebBrowserEvents2

691デフォルトの名無しさん:2012/05/08(火) 22:08:23.57
会社の内部のサイトが、IEのみ対応らしいので会社ではIEをメインで使っているのですが、

1. IE7ではpdfにアクセスするとほぼ必ず落ちる。
2. Googleの出力が、Firefoxと違ってアクセス先がpdfかどうか分かりにくい。

で悩んでいます。IE8にアップする以外で対応する方法ありますか?
なければ周りの人のIE8の評判聞いてバージョンアップします。
692691:2012/05/08(火) 23:33:17.70
なんかスレ違いでしたね。すみません。
693デフォルトの名無しさん:2012/05/08(火) 23:50:49.54
>1. IE7ではpdfにアクセスするとほぼ必ず落ちる
これ環境がおかしいんじゃないのか?
普通落ちることはマレだろ
694デフォルトの名無しさん:2012/05/09(水) 00:11:33.84
ブラウザでPDF表示なんて糞だから一番最初に切るものじゃないのか
695デフォルトの名無しさん:2012/05/10(木) 19:13:44.80
おお、返事が。
>>693
会社のPCなのでそんなに激しくいじってはいないのですが。逆に言うとまずい原因も分からないのです。
>>694
やっぱそれが一番ですか。そうします。

ところで、
>2. Googleの出力が、Firefoxと違ってアクセス先がpdfかどうか分かりにくい。

が結構めんどくさいと思ってしまうのですが。「○○の最新動向」とか書いてあって
pdfとかだと、なんかだまされた気がしますw
696デフォルトの名無しさん:2012/05/18(金) 15:07:20.20
ieとadobe readerはバージョンの組み合わせで相性があるからな
697デフォルトの名無しさん:2012/06/05(火) 21:56:02.90
ページ上にあるFlashのボタンをクリックするにはどうすればいいんだろ?
elementsとclickで実装しようとしてるけど上手くいかない
698デフォルトの名無しさん:2012/06/05(火) 22:53:25.19
flashは画面キャプチャしてボタンを画像認識、mouse_eventでクリック。
699デフォルトの名無しさん:2012/06/05(火) 23:03:30.87
そもそもflashのボタンはdomの要素じゃないので押せねえ
700デフォルトの名無しさん:2012/06/11(月) 01:33:17.03
GoogleマップのJavaScript変数を取得できないんですけどなんででしょう
IEのアドレスバーに
javascript:void(prompt('',gApplication.getMap().getCenter()));
みたいに入力すると取得できています


HRESULT hr;
CComBSTR bstrCode(_T("eval(var a = gApplication.getMap().getCenter())"));
CComBSTR bstrLang(_T("javascript"));

CComPtr<IHTMLDocument2> spHtmlDoc;
CComPtr<IHTMLWindow2> spHtmlWin;

IHTMLDocument2 *pHtmlDoc = GetDocument2();
if (!pHtmlDoc)
return FALSE;

spHtmlDoc.Attach(pHtmlDoc);

hr = spHtmlDoc->get_parentWindow(&spHtmlWin);
if(FAILED(hr))
return FALSE;

VARIANT varEmpty = {0};
hr = spHtmlWin->execScript(bstrCode, bstrLang, &varEmpty);
701デフォルトの名無しさん
そもそもGoogleマップのURLでevalが以下の方法で見つかりません。
bstrMember は "eval"

hr = pHtmlDoc->get_Script(&spScript);
(中略)
hr = spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,...
(中略)
hr = spScript->Invoke(dispid,IID_NULL,0,...

次のようにすると見つかります。
hr = spScript->GetDispID(bstrMember, fdexNameCaseSensitive, &dispid);
(中略)
hr = spScript->InvokeEx(dispid, LOCALE_USER_DEFAULT,...
(中略)

あと
CComPtr<IHTMLScriptElement> spScriptElem;
hr = spDisp->QueryInterface( IID_IHTMLScriptElement, (void **)&spScriptElem);
で確認するとスクリプトが空なんです。
もうなにがなんだかさっぱりな状態です