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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
=====================================

IEコンポーネントを利用したブラウザのプログラミングに関する情報の交換及び再
利用を目的とした総合情報スレッドです。

=====================================


最近IEコンポーネントを利用してブラウザを作るプログラマが増えてきました。こ
れから自作してみようという人も多いでしょう。コンポーネントを貼り付けるだけ
なら誰でも出来ますが複雑な制御を行うにはそれなりの経験や知識が要るようです。
私自身が知りたいのも山々ですが、似たような質問が分散するのを避けるためにも
統一しましょう。ブラウザ作者、COM に精通した方大歓迎です。もちろん公開した
くない "禁断のテク" もあると思いますが、そこは各人の判断ということでお願い
します。

※ 開発言語は問わないことにしますので質問するときはその辺を踏まえてお願いし
ます。

(以上、前スレより)

IEコンポーネントを使い倒すスレ
http://pc5.2ch.net/test/read.cgi/tech/982930049/

かなり前のスレですが続編を立てました。
2デフォルトの名無しさん:2006/04/16(日) 21:12:04
3デフォルトの名無しさん:2006/04/16(日) 21:22:42
関連スレ(俺の独断と偏見)

【OLE】オートメーション総合スレ【ActiveX】
http://pc8.2ch.net/test/read.cgi/tech/1137771139/l50
Win32API質問箱 Build42
http://pc8.2ch.net/test/read.cgi/tech/1144962549/l50
ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50

Donut開発情報交換スレ(DAT落ち)
http://pc8.2ch.net/test/read.cgi/tech/1096194187/l50
4デフォルトの名無しさん:2006/04/17(月) 19:39:15
>>3
FW2.0にはwebbrowserコントロールあるし、IEコンポーネントプログラミングなんてもう必要無いんじゃまいか?
5デフォルトの名無しさん:2006/04/20(木) 15:52:56
6デフォルトの名無しさん:2006/04/20(木) 16:48:53
たしか、Part 2があったはずなんだけど

いやーごめんなさいでブッとばされて、それっきりになったんだっけ?
7デフォルトの名無しさん:2006/04/28(金) 07:12:22
まさか今になって次スレが立つとは。うれしいなあ。
>>1の英断に乾杯。
8デフォルトの名無しさん:2006/04/28(金) 15:16:29
このままDAT落ちしそう
9デフォルトの名無しさん:2006/04/28(金) 17:46:12
4ヶ月ほっとかれても落ちないみたいだから
だいじょぶなんでない?

テンプレ?に追加
わからないことがあったらとりあえずググっとけ
http://google.co.jp/

調べてるうちに英語のページが出てきても、
そこに書いてあるメソッドやらIDやらでググればいい
10デフォルトの名無しさん:2006/05/07(日) 22:04:26
ageてもいいよね
11デフォルトの名無しさん:2006/05/11(木) 00:49:29
IE7β2インスコした記念age
12デフォルトの名無しさん:2006/05/13(土) 12:13:27
記念質問

プロセス内の変数(WinMainとかで宣言した変数)を、
IEコンポーネントの中のJavaScriptから参照することはできますでしょうか?

int main(void){
  int count = 0; // ←例えばこういう変数をJavaScriptで直接参照したい
}

データの算出はC++で書いて、
そのデータの表示はHTML+JavaScriptでやりたい感じなのですが・・・。
13デフォルトの名無しさん:2006/05/13(土) 17:30:19
>>12
無理。
14デフォルトの名無しさん:2006/05/13(土) 18:15:06
HTMLでデータを表示するなら自前でHTMLファイルを書き出して表示とか。
15デフォルトの名無しさん:2006/05/13(土) 18:37:42
>>13-14
やっぱりっすか。

変数の中身は動的に変化するものなので、
というか時間を管理する変数なので随時C++で更新かけつつ、
JavaScriptでアクセスして表示させたいのです。

Sleipnirでは、現在のアドレスバーとか検索バーの文字列を
取得するActiveXオブジェクトがあるので、そっちの路線で調べて見ます。


http://www.sleipnir-wiki.jp/index.php?Sleipnir.API%20%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9
16デフォルトの名無しさん:2006/05/13(土) 20:27:32
COMっていうことになるのかなぁ。
17デフォルトの名無しさん:2006/05/13(土) 21:07:59
正にIEコンポーネントを使い倒せばできるはず。
(倒さなくてもできるとは思うけど)
18デフォルトの名無しさん:2006/05/13(土) 21:13:36
>>12
できます。
19デフォルトの名無しさん:2006/05/13(土) 22:02:41
>>17
>>18
IActiveScript?
20デフォルトの名無しさん:2006/05/13(土) 22:40:31
ちがう
21デフォルトの名無しさん:2006/05/13(土) 22:45:51
確か、MSDN にそのものずばりの HOWTO があったような記憶が・・・
今手元に MSDN が無いのでなんとも言えないけど。
WEB 版は、変わっちゃったんだね。
2219:2006/05/14(日) 01:22:17
MSDNとかざっと見たけど分かんないっす。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1371&forum=7
23デフォルトの名無しさん:2006/05/14(日) 01:57:20
>>12
>プロセス内の変数(WinMainとかで宣言した変数)を、
>IEコンポーネントの中のJavaScriptから参照することはできますでしょうか?

横レスですが
IHTMLDocument::get_Script()とかいう話ではない?
ただ「JavaScriptから変数を参照する」というより
アプリ側から引数として渡すような形になるけど

頓珍漢なこといってたらごめん。
2422:2006/05/14(日) 08:58:57
22のリンク先はIHTMLDocument::get_Script()で行けるのかも…。
ScriptEngineが取得できれば、IActiveScript->AddNamedItemあたりで
アプリ側から名前付きオブジェクトを渡せるから行けるんではと思うけど、
にしても、17,18,20の回答(正解)が気になる…。
25デフォルトの名無しさん:2006/05/14(日) 22:52:04
Win32API質問箱で質問した者ですが、誘導されたので改めて質問させて頂きます。

WinXP SP2のIEで、ダウンロードが自動的に始まるページへ移動すると

"セキュリティ保護のため・・・"

と表示され、自動的にダウンロードが行われないようになっていますが、
IWebBrowserを使用したIEコンポーネントで同じような機能を実装するには
どうすれば良いのでしょうか?

よろしくお願いします。
26デフォルトの名無しさん:2006/05/15(月) 19:41:35
たぶんリダイレクトするときにイベントが来るからDWebBrowserEvents2を実装してみる。
あくまでもたぶん。
2712:2006/05/15(月) 19:44:44
>>16-24
お返事遅れてすいません。
IActiveScript->AddNamedItemで、スクリプトにCでのコード埋め込みができそうですね。
調べる限り、それをやるにはコードが相当複雑そうですが(^^;
ありがとうございました。

>>25
あっ、>>836だ。
28デフォルトの名無しさん:2006/05/17(水) 18:25:23
なんかIE7βにしてからIEコンポーネント使ったソフトの挙動がヘンなんだが。
29デフォルトの名無しさん:2006/05/17(水) 20:22:50
さすがはM$
30デフォルトの名無しさん:2006/05/17(水) 20:23:33
仕様が変わってるのだから仕様が無い。
31デフォルトの名無しさん:2006/05/17(水) 22:42:57
だれが上手いこと言えとw
32デフォルトの名無しさん:2006/05/18(木) 12:05:04
>>28
IE7b2はデフォルトでローカル(メモリやファイルシステムにある)なhtmlで
アクティブスクリプトを有効にしないようになってるからじゃ○マイカ。
33デフォルトの名無しさん:2006/05/19(金) 02:27:19
>>32
そうだったノカー(AA略)
サンクスコ!
34デフォルトの名無しさん:2006/05/21(日) 14:48:53
>>32
IE6sp2からそうじゃなかった?
35デフォルトの名無しさん:2006/06/01(木) 19:54:50
age
36デフォルトの名無しさん:2006/06/02(金) 00:08:11
IDispatchってなによですぱっちって。なんなのよーこれなんなのよー
37デフォルトの名無しさん:2006/06/02(金) 00:20:11
>>36
同士よー!
IDispatchってなによですぱっちって。なんなのよーこれなんなのよー

なんか、クラスインスタンスをクラスで表しちゃったようなインターフェース。って感じだと思う。

っていうか、俺もIDispatchについて聞きたいんだけどここじゃスレ違い?
38デフォルトの名無しさん:2006/06/02(金) 00:27:50
マルチポストになります。ごめんなさい
はじめVBで探していたのですが、もっと適切なスレがあったので
すいませんが、質問させてください。

サーバと通信するクライアントを作成するのに
WebBrowserControl(Maicrosoft Web Browser)(正しくはTridentらしい)を
利用してやり取りしようとしています。

入力したデータをdoPostで送っているだけなのですが、
サーバ側で見るとdoGetとdoPostの両方で来ています。
漏れの認識では少しのデータを送るときdoGet
大量のデータを送るときdoPostをりようしていると思っています。

なんで、doPostだけで送ってくれないのかわかりません。
WebBrowserControlのAPIとかどこかにないでしょうか教えてください。

後、HttpのdoPost、doGetの違いをわかりやすく詳しく説明しているサイト等を
教えていただけないでしょうか?
39デフォルトの名無しさん:2006/06/02(金) 00:28:27
ここに来るぐらいなら言語の1つぐらい持ってるだろ?
ヘルプみろよ。
40デフォルトの名無しさん:2006/06/12(月) 00:33:54
BHOをいじってます。ブラウザのイベントはInvokeで拾えるんですが
DISPID_AMBIENT_DLCONTROLの拾い方がわかりません。
IWebBrowser2からIOleClientSiteを得ればよいのかな?
4140:2006/06/17(土) 01:33:43
連投すまん。
IEでWordやExcelが開けるんだから、IEもIOleClientSiteを持ってるはずなんだが、
IWebBrowser2からどうやって取得したらよいのかわからない。
IWebBrowser2でQueryInterfaceかましてもNULLだった。
42デフォルトの名無しさん:2006/06/17(土) 02:46:29
VistaのIE7で仕様かわったっぽい?
Navigate2まわりでアクセス違反で落ちるようになった
43デフォルトの名無しさん:2006/06/17(土) 10:16:37
IOleClientSiteはクライアント側(Word, Excel)が持ってるものじゃないの
44デフォルトの名無しさん:2006/06/17(土) 11:21:11
IHTMLDocument2で、任意のタグを取得したい場合(例えばmetaタグとか)、
get_allでIHTMLElementCollectionを取得して、一個一個ループでまわしてタグ名を見ていくしかないのでしょうか?

IHTMLDocument3にgetElementsByTagNameというものがあったのですが、できればIHTMLDocument3は使いたくないです。
4540:2006/06/17(土) 12:45:43
>>43
ActiveDocumentを貼り付けられるものは
IOleClientSiteを持ってると思うんだけど。
Word、Excelも当然もってるし、IEも持ってるはず。
全部ActiveDocumentを開けるから。
4644:2006/06/17(土) 23:31:17
>>44です。get_allしてループでまわすのが面倒だったので質問したのですが、
IHTMLElementCollectionに、itemというメソッドがあって、
タグ名をもとにタグ情報を取得できそうなので解決しそうです。

失礼しました。
47デフォルトの名無しさん:2006/06/24(土) 18:19:48
いつの間にか復活してるじゃないかsage
48デフォルトの名無しさん:2006/06/24(土) 18:48:01
ブラウザイベントをInvokeで拾う方法を教えれ下さい。
49デフォルトの名無しさん:2006/06/24(土) 19:07:05
window.external
50デフォルトの名無しさん:2006/06/24(土) 22:42:56
>>48
DWebBrowserEvents2で色々やってみれ
5148:2006/06/24(土) 22:55:43
>>49-50
実はHtmlイベントの受信がしたかったわけですが、なんとか接続の確立ができ申した、言葉足らずで失礼。
一ヶ月かかったわ…
52デフォルトの名無しさん:2006/06/26(月) 13:55:19
接頭語のIってなんなの?Iって。
IEとかIE_とかにしてくれよ。
53デフォルトの名無しさん:2006/06/26(月) 14:40:42
>>52
InterfaceのIだろ。
MFCなんかでクラス名がCナントカになっているのと同じ。
54デフォルトの名無しさん:2006/06/26(月) 18:23:46
すみません
タブブラウザでソースコードを公開している奴って
ありますか?
55デフォルトの名無しさん:2006/06/26(月) 19:18:45
Donut RAPTなどなど
56デフォルトの名無しさん:2006/06/26(月) 20:15:00
Donut RAPTはHTMLが変に表示される
白抜き文字とかも真っ黒
57デフォルトの名無しさん:2006/06/26(月) 23:10:54
>>51
IWebBrowserNからDWebBrowserEvents2とか使わず、
IDispatch::Invokeでイベント取得できたってことですか?
おしえてホスィ。

DocumentCompleteが通知されてほしい。
5812:2006/06/26(月) 23:18:21
そういえば、IEコンポーネントのJavaScriptからC++の変数を参照する方法ですが、
IHTMLDocumentのget_Scriptで得たIDispatchからQueryInterfaceで、
IDispatchExを取得してInvokeEx呼び出せばいいみたいです。説明わかりにく。

IEコンポーネントからIActiveScriptを得るのはたぶん無理っぽいです。
IDispatchExからプロパティを追加する方法しかないっぽいです。
参考資料 → http://www.codeproject.com/com/dispexsinkconnector.asp

これ調べるの結構かかったなぁ
59デフォルトの名無しさん:2006/06/26(月) 23:22:07
IXxxxxx → Interface
CXxxxx → Concrete?またはClass?
DXxxxx → Dってなによ
60デフォルトの名無しさん:2006/06/27(火) 15:42:37
>>59
dispinterface
61デフォルトの名無しさん:2006/06/27(火) 17:40:40
>>59
さすがにコンクリートはないと思うが
62デフォルトの名無しさん:2006/06/27(火) 19:56:47
CreateWindowExで作ったIEコンポのウィンドウを破棄するときはDestroyWindowでOK?
6359:2006/06/27(火) 22:31:58
DIXxxxx → Dual Interfacesらしい
AfxXxxx → MFCのもの

CXxxxxはclassのCっぽいね。
64デフォルトの名無しさん:2006/06/28(水) 21:55:54
>>62
CreateWindowExってことはATLのIEコンポ?
よく調べてないけどDestroyWindowでおk(適当
65デフォルトの名無しさん:2006/06/29(木) 16:44:23
はげ
6651:2006/06/30(金) 05:45:25
>>57
Htmlイベントじゃなくて、マウスイベントとかだったわ…重ね重ね失礼。
6757:2006/06/30(金) 13:15:49
>>66
いや、俺がよく見てなかったのが悪かったわ。
>実はHtmlイベントの受信がしたかったわけですが、
と書いてあるのを思いっきり見落としてた。
68デフォルトの名無しさん:2006/07/02(日) 01:38:07
HTAアプリケーションのselection=noみたいに、
IEコンポーネント内のテキストをマウスカーソルで
選択できなくするような方法をご存知ないでしょうか?
69デフォルトの名無しさん:2006/07/03(月) 03:51:40
そういうJavaスクリプトを読ませる。
http://www.iwate-np.co.jp/news/y2006/m07/d02/NippoNews_11.html
70デフォルトの名無しさん:2006/07/03(月) 10:32:53
>>69
オオオおおお。まさにやりたいことです。ありがとうございます。
document.onmousedown = new Function("return false");
↑これやったらボタンも押せなくなるのかと思ってましたけどできるんですね
71デフォルトの名無しさん:2006/07/05(水) 14:24:56
window.moveToやwindow.resizeToが呼び出されたことを知る方法ないでしょうか?
DWebBrowserEvents2とか見ましたが見当たりませんでした…。
72デフォルトの名無しさん:2006/07/07(金) 19:08:31
マウスポインタの下にリンクがあった場合、
そのリンクのIHTMLAnchorElementを取得するにはどうすればいいすか?
73デフォルトの名無しさん:2006/07/10(月) 12:06:11
禿
74デフォルトの名無しさん:2006/07/14(金) 00:23:42
すみません

IEコンポーネントでIHTMLDOMNodeを使おうとしたのですが
error C2065: 'IHTMLDOMNode' : undeclared identifier
と定義不明といわれて怒られます。

MSDNを見る限り、Mshtml.hをインクルードし
IE5以上なら使えると書いてあります。
なぜ私の所ではダメなのでしょうか?

Windows2000SP6+VisualStudio6.0+IE6です。
よろしくお願いいたします。
75デフォルトの名無しさん:2006/07/14(金) 11:39:39
VS6.0だと古くてヘッダに定義がないのかも。
実際に俺の環境ではVS.NET2003とVS6.0を入れてるけど、6.0にはIHTMLDOMNodeのクラス定義がないね。
VS6.0の最新のサービスパック入れたらなおるか、.NET買うかしないと。
76デフォルトの名無しさん:2006/07/14(金) 20:42:38
すみません。妥当なスレが分らなかったのでここで質問させてください。

IE7の日本語ベータ3をインストールしたら、InternetOpenUrlにシフトJIS
のファイル名を使っているプログラムがエラーを起こすようになりました。

β版だからといえばそれまでですが、何か情報を持ちの方、または
対処方法、ご存知であればお教えください。

補足として、

・IE6以前とIE7ベータの英語版では問題なかった。
・IE7日本語β3からアドレスバーにS-JIS日本語名を含むURLを直接入れた場合は読み出せる。
・InternetOpenUrlでエラーが起きたとき、サーバーのログを見ると、日本語に該当する部分が
 著しく欠損した状態(文字化けとか言うレベルじゃなく)でアクセスされている模様…。

よろしくお願い致します。(日本語のUrlを使うなというのは横へ置いておいて…)
77デフォルトの名無しさん:2006/07/14(金) 21:06:10
正式版になってから言え
78デフォルトの名無しさん:2006/07/14(金) 21:49:35
>>76
InternetOpenUrlWだとどうなる?
7976:2006/07/14(金) 22:19:03
>>78
プログラムがANSIなのでW版はちょっと試していませんが、
ひとまず自分でURLの漢字部分をutf8エンコードして回避しました。

どうもありがとうございました。
8074:2006/07/14(金) 22:33:46
>75
.NETではIHTMLDOMNodeは使えるみたいですね。
あとVS6.0のSP6をインストールしてみましたが使えませんでした。
やはり.NETを買うしかないみたいですね。
ありがとうございました
8176:2006/07/14(金) 22:33:46
>>78
W版を試してみたところ、InternetOpenUrlWだと何も考えなく
てもうまく行きました。

自分で%E7……て変換しなくてもやってくれるようです。

重ねてありがとうございました。

……自分で変換したさっきの苦労はorz
82デフォルトの名無しさん:2006/07/14(金) 22:56:21
別ドメインのフレームのIHTMLDocument2を取得するにはどうすればよいでしょうか
83デフォルトの名無しさん:2006/07/15(土) 21:25:02
質問です。
XMLデータをメモリから設定すると、HTMLとして表示されてしまうのですが、
設定するデータの属性を設定する方法があるのでしょうか?
現在は、一度「.xml」な一時ファイルを吐き出してそれを読み込ませる方法にしています。
84デフォルトの名無しさん:2006/07/15(土) 22:33:11
ちゅんと doctype 付けてる?
8583:2006/07/16(日) 05:13:09
>>84
つけていませんでした。DOCTYPE見ているのですか。
試してみます。どうもです。
86デフォルトの名無しさん:2006/07/18(火) 03:06:57
前スレででていたUrlMkSetSessionOptionを使って
ユーザエージェントを変更したいのですが、変更されません。
設定するタイミングがあるのかと、いろんな箇所で入れて、
UrlMkGetSessionOptionで取得すると取得される値では変更はされているようでしたが
printenv.cgiなどでみると変更されていません。
分かる方いますでしょうか?
8786:2006/07/18(火) 03:12:59
navigator.userAgentが変更されていました。
UrlMkSetSessionOptionは、Javascriptのnavigator.userAgentを変更する関数で、
HTTPプロトコル上のUser-Agentヘッダーオプションは変更しない・・?
88デフォルトの名無しさん:2006/07/18(火) 04:43:57
確認君とかで見ると普通に変更されるよ。
8986:2006/07/18(火) 05:21:24
>>88
確認君でも見ましたが、変更されていませんでしたが・・・。IE7 XPPro SP2です。
お詳しいようなので、いまさらな質問ですが、
UrlMkSessionOptionは、プログラム内で一度実行したらそれでいいのでしょうか?
実行するタイミング(たとえば、コンポーネントを起動後など)などありますか?
90デフォルトの名無しさん:2006/07/18(火) 14:03:25
IEコンポーネントを作った後にUrlMkSessionOptionしてるだけだよ。IE6+XPPro
ただ、こっちはなぜか実行時1回こっきりしか変えられないんだよなぁ・・・。
91デフォルトの名無しさん:2006/07/21(金) 03:39:22
AxWebBrowserを使用して、画面遷移を自動で行って、処理を行うアプリを
書いているのですが、formのsubmitで、詰まっています。

環境は、XPsp2、IE7β2です。
言語はC#。

ソースはこんな感じ。

IEnumerator forme = myDocument.forms.GetEnumerator();
forme.MoveNext();

mshtml.HTMLFormElement form = (mshtml.HTMLFormElement)forme.Current;

form.submit();

nextProcess();


submitを行い、画面遷移が完了したところで、次の処理(nextProcess())を行いたいのですが、
上記の方法では、次の処理が終わってから画面遷移をしてしまいます。

間で
form.submit();
while(axWebBrowser1.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE);
nextProcess();

とかしても、ステータス判定のところで無限ループが発生してしまい、お手上げです。
どなたか、ご教示ください・・・。
92デフォルトの名無しさん:2006/07/21(金) 11:48:53
その nextProcess() をしない場合どうなるの?
93デフォルトの名無しさん:2006/07/21(金) 20:36:20
IEコンポーネントでとあるHPを表示させているのですが、
そのHPの中でFocus()をしていて、そのHPをプログラム側で読み込むと
表示しているアプリを前面に持っていってしまいます。
(何回もそのHPを更新をするのでその都度前面に来るとかなり鬱陶しいです。)

何とかこれを回避したいのですが何か良い方法はありませんでしょうか?
Win2000+VC6.0+IE6です。よろしくお願いいたします。
94デフォルトの名無しさん:2006/07/23(日) 07:46:18
>72
IHTMLDocument2::elementFromPoint
95デフォルトの名無しさん:2006/07/23(日) 20:58:42
IWebBrowser.Navigate2(..)の第一引数にマイコンピュータとかのCLSID
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
を文字列で渡す場合、

IE6(XP sp2) だと正常に動作するのに、IE7(Vista β2)だと
「保護されているメモリに読み取りまたは書き込み操作を行おうとしました……」
ってエラーがでるんですが
なんとかなりませんかね?
96デフォルトの名無しさん:2006/07/24(月) 00:17:00
質問です。
.zipファイル等のリンクをクリックしてダウンロードする際の保存先のパスや、
ファイル名指定ダイアログでキャンセルした等の情報は取れないんでしょうか?
97デフォルトの名無しさん:2006/07/24(月) 23:59:32
JavaScriptを実行する方法はありませんか?
DocumentComplete時に初期設定JavaScriptを実行するようにしたいのです。

>>93
荒業で以下のJavaScriptを実行する手もある。
window.focus = function(){ return false; }
9897:2006/07/25(火) 00:00:34
質問なのにsageちゃった。せっかくだからage
99デフォルトの名無しさん:2006/07/25(火) 01:09:45
HtmlElementCollection links = webBrowser1.Document.Links;
foreach (HtmlElement link in links)
とかやってるのですが、linkのなかに含まれる
URLだけを拾うにはどうしたらいいでしょうか?
環境は.net2です。
100デフォルトの名無しさん:2006/07/25(火) 04:44:03
IHTMLAnchorElement
get_href
101デフォルトの名無しさん:2006/07/25(火) 14:17:33
>>97
>>58のリンク先に載ってる。
だけどVC.NET2003だとサンプル動かないし、COMよくわからないから死にそう。
10297=58:2006/07/25(火) 15:14:55
>>101
>>58は俺です(笑。 >>58はJavaScriptのロジックと、C++のロジックを結びつける方法ですね。
>>97の質問は自作IEコンポでどんなページを開いても、開いた最初にinit.jsなどの初期設定JavaScriptを実行したいのです。

>だけどVC.NET2003だとサンプル動かないし、COMよくわからないから死にそう。
サンプル動かなかった?コンパイルは通るけど、なんか赤ばってんのダイアログがでる、
っていう問題だったらキャンセルだか無視ボタンだかを押し続けたら動いたような気がしたけど。
まあ、サンプル動いてもあのソースめちゃくちゃ長いし複雑だったから解析大変だけどね。
JavaScriptのロジックにC++のロジックを埋め込む方法が知りたいのなら軽く解説しますよ。
>>58のリンク先にあるイベントを埋め込む方法は最終的にはわからなかったけど。
10397:2006/07/25(火) 15:25:15
10499:2006/07/25(火) 22:44:41
>>100さん
レスありがとうございました。
IHTMLDocument2 links = (IHTMLDocument2)webBrowser1.Document.DomDocument;

string temp = "";
IHTMLAnchorElement link;
foreach (IHTMLElement lin in links.links)
{
if (lin.tagName.ToLower().Equals("a"))
{
link = (IHTMLAnchorElement)lin;
temp = link.href;
}
}
みたいな感じにしました。
10593:2006/07/26(水) 18:39:05
>97
レスありがとうございます。

CComQIPtr<IHTMLWindow2> pHW2;
pDoc->get_parentWindow(&pHW2);
BOOL ret = pHW2->execScript(L"window.focus = function(){ return false; }",L"JavaScript",NULL);

こんな感じでJavaScriptを実行してみましたが、ダメでした。
retにS_FALSEが入り失敗します。何かfocusをさせないうまい方法は無いものでしょうか?
10697:2006/07/26(水) 23:17:13
>>105
execScriptの3番目の引数がNULLでは駄目なのでは?
↓これでどうよ?
VARIANT result;
VariantInit(&result);
BOOL ret = pHW2->execScript(L"window.focus = function(){ return false; }", L"JavaScript", &result);

あ、execScriptのサンプルありがとう。
10797:2006/07/26(水) 23:19:26
>>105
の前にwindow.focus = function(){ return false; } で要求した動作を満たしてる?
window.focus()メソッドが完全に無効になっちゃうけど、それでもかまわないの?
108デフォルトの名無しさん:2006/07/27(木) 23:19:27
質問です
やりたい事:Webアプリケーションを自動で操作するスタンドアローンアプリを作りたい

1 フレームがある場合どうすればよい?
2 別ウインドウが開く場合どうする?
3 画面遷移完了はどのイベントを受信することで判る?
4 操作アプリ起動時に、既に開いているIEオブジェクトを取得して操作できる?

よろしくです
10993:2006/07/27(木) 23:26:31
97さん
レスありがとうございます。
>106
3番目をNULLではなく、Variant変数を渡したら
retにはS_OKが返ってきました。
しかし、どういうわけかfocusしてしまいます。

>107
取り合えず手詰まり状態なので、何でもやってみようという感じです。

必要なのはHPの中の文字だけなので、HPを表示しているIEコンポは
別Windowにして非表示にしてみたのですが、そのページを再表示すると
その非表示のWindowにFocusがあたって、今まで前面にいたWindowの
Focusが外れてしまいます。うーむ困ったものです。
11097:2006/07/28(金) 00:18:29
>>109
再表示した時にもう一度execScript実行してる?
ドキュメントを再読み込みしたら、window.focusの中身はまた元々のfocusメソッドに戻ってると思うよ。
DIID_DWebBrowserEvents2のDownloadCompleteイベントを監視して毎回、window.focus無効にしないと駄目だぜよ。
(DocumentCompleteは再読み込みでは発生しないのでDownloadCompleteイベントがいいです)
11193:2006/07/28(金) 23:35:16
>>110
97さん
DownloadCompleteイベント時に常にexecScript()をしてみたのですが
ダメでした。やはりfocusがあたってしまいます。

ちょっと思ったのですが、focusはDownload中にScriptとして読み込まれ、
実行されるわけですよね?だからDownloadComplete時にfocusを無効にしても
遅いような気がしてきました。BeforeDownloadですとDocumentが取れないですし、
これから読込むページのfocusを無効にするのは無理なのかな?という気が
してきました。

あとDownload前に現在のForegroundのHWNDを保持しておいて、DownloadComplete後
保持したHWNDでSetForegroundWindow()をするという方法も考えたのですが
再読込み時に現在前面にいるWindowのfocusが一瞬外れてしまうので、
余り使いたくないですね。

他に何か良い方法が無いものでしょうか?
11297:2006/07/29(土) 00:38:29
>>1
>ちょっと思ったのですが、focusはDownload中にScriptとして読み込まれ、
>実行されるわけですよね?だからDownloadComplete時にfocusを無効にしても遅いような気がしてきました。
まぢですか。と思ってやってみたら本当ですね。
私は標準で用意されてるwindowクラスのmoveToやらmoveByなどのメソッド書き換えて、
別の動作にさせたいという要求があったのですが同じ理由で無理そう。

そうなるとちょっと良い方法はわかりません。困りましたw
113デフォルトの名無しさん:2006/07/31(月) 01:24:46
今まで表示済みのページに対してJavascriptを適用するのに
わざわざDocumentのwriteで書き直しを行っていたのですが、
execScriptなんてのがあったのですね。
大変参考になりました、ありがとうございます。>>103


ちなみに、BSTR型は、ただのワイド文字列とは違うので(先頭が文字列長になっています)
CComBSTR等で包んであげると良いです。

execScript(CComBSTR("window.focus = function(){ return false; }"),CComBSTR("JavaScript"),NULL);
114デフォルトの名無しさん:2006/08/02(水) 01:30:29
Visual C++で、WebBrowserコントロールを使ってブラウザのようなアプリケーションを作成しています。

作成しようとしているものは、既存のクリック募金のサイトにアクセスして、クリック回数や募金の金額を管理してくれる簡単なアプリです。

対象とするサイトは以下のようなサイトです。

ttp://www.kirin.co.jp/active/env/mizunomegumi/click.html
ttp://clickbokin.ekokoro.jp/belmo.html
ttp://www.thehungersite.com/cgi-bin/WebObjects/CTDSites

クリック時に、WebBrowserコントロールのOnBeforeNavigate2()が呼ばれるサイト
では、OnBeforeNavigate2()でフックする方法が使えると思います。
ただ、一番上のキリンのサイトのようにFlashで書かれたサイトでは、クリック時に
OnBeforeNavigate2()が呼び出されないようで、クリックを検出する方法を
どのようにしたら良いかと悩んでします。

なんか、良いアイディアあるでしょうか?
WebBrowserも、HTMLも、Visual C++も、Flashも詳しくないのでどこからてを付けてよいか困っています。
よろしくお願いします。

115デフォルトの名無しさん:2006/08/02(水) 17:26:00
自分がクリック(に相当する操作)した回数を数えるんだろ?
116デフォルトの名無しさん:2006/08/03(木) 00:32:09
>114
NavigateComplete2イベントなんてどうでしょう?

以下のサイトにDWebBrowserEvents2のイベント説明が載ってるのでいろいろ試してみては?
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents2/dwebbrowserevents2.asp
117114:2006/08/04(金) 00:53:49
> 116さん

詳しい説明ありがとうございました。
NavigateComplete2も試してみたんですが、クリックした際に呼ばれないようです。

まだ、理解できていないですが、以下の方法で少しチャレンジしてみようと思います。

相談にのっていただいてありがとうございました。

1)Ethrealでパケットキャプチャして調べたところ、通信をしているのでWebBrowserコントロールで
通信しているパケットを取得して判断。

2)下の方法でクリックのイベントが取れるそうなので、そこからがんばる。

http://support.microsoft.com/kb/246247/
118デフォルトの名無しさん:2006/08/04(金) 17:43:06
指定したリンクが未読か既読か区別する方法ってありますか?
IHTMLAnchorElementではそのようなメソッドがないようです。。。
119デフォルトの名無しさん:2006/08/04(金) 21:08:39
>>118
IUrlHistoryStg::QueryUrl
120デフォルトの名無しさん:2006/08/10(木) 11:11:27
BCC(無料)でIEコンポーネントを使いたいのですが
どこか参考になるサイト等はありますか?
121デフォルトの名無しさん:2006/08/10(木) 13:29:45
教えない><
122デフォルトの名無しさん:2006/08/10(木) 16:24:39
マジレス
BCCでは使えない
VC++にしなさい
123デフォルトの名無しさん:2006/08/10(木) 16:43:24
無理
124デフォルトの名無しさん:2006/08/10(木) 17:41:48
Visual C++ 2005 Express Edition は?
125デフォルトの名無しさん:2006/08/11(金) 10:11:58
BCCでは無理なようですね
ありがとうございました
126デフォルトの名無しさん:2006/08/11(金) 10:15:09
>>125
たぶんこの方法ならできると思う。VC++固有の機能は使っていないはず。
http://www.adp-gmbh.ch/win/misc/mshtml/HTMLWindow.html
ATLのDLLを用意できるのなら、このページの方法が使える。
ただしCComPtr/CComQIPtrなどを使わないように改造する必要があるだろうが。
http://www.nitoyon.com/vc/tips/ie_component.htm
127デフォルトの名無しさん:2006/08/12(土) 11:58:06
>>126
すごいね。この上のHP。mingwでもできるようだ。BCCでもできるっしょ。
http://www.adp-gmbh.ch/win/misc/mshtml/MSHTMLTest.zip
128デフォルトの名無しさん:2006/08/20(日) 19:17:37
ページを更新した(更新ボタンを押す or F5を押す)
というイベントはどう拾えばよいのでしょう?
129デフォルトの名無しさん:2006/08/21(月) 00:17:13
IEツールバーの製作もここですか?

ツールバー上の特定のボタンを押すとポップアップメニューが出てくるように
プログラムしたのですが、IEを複数起動した場合、2つ目以降では
メニューが出てきません。他にも、IEを複数起動した場合、不安定に
なることが多いです。これって何が原因でしょうか。

IEを複数起動すると、ツールバーも複数存在するわけですが
OSの内部ではどうやって各ツールバーを扱っているのでしょうか。
130デフォルトの名無しさん:2006/08/21(月) 00:35:46
>>128
更新ボタンって自分で作ってないの?
F5はキー拾えばいいんじゃね?

>>129
>IEを複数起動すると、ツールバーも複数存在するわけですが
>OSの内部ではどうやって各ツールバーを扱っているのでしょうか。

IEが別プロセスならツールバー間も無関係なはず
別プロセスでも共有しちゃってるような何かリソースがあるんじゃないの
設定ファイルとかレジストリの状態とか
131128:2006/08/21(月) 00:45:50
>>130
説明不足でした。
自分でIEコンポのインスタンス生成してるんじゃなくBHOをやってます。
なのでInternetExplorerで更新されたことが知りたいんです。
更新だとBeforeNavigateはこないです。
132デフォルトの名無しさん:2006/08/21(月) 02:11:02
>>131
BHOってのがなんだか知らんが、
DownloadBeginかDownloadCompleteだったら、
location.reload()とかで更新されるたびに毎回通知がきたよ。
133デフォルトの名無しさん:2006/08/21(月) 18:43:50
>>129
複数のスレッドから呼ばれてもきちんと動作するように作る。
134デフォルトの名無しさん:2006/08/23(水) 01:59:13
ねーねー、おまいら IE6 と IE7 の違いはどう吸収すんの?
135七資産:2006/08/23(水) 02:50:30
気合
136デフォルトの名無しさん:2006/08/23(水) 02:53:57
今のところ、Navigateに空文字渡すとエラーが出るようになったくらいしか
IE7と6の違いには遭遇してないけど、他にもいろいろあるんだろうな。
137デフォルトの名無しさん:2006/08/23(水) 07:34:41
多段タブにできないものかな。
138デフォルトの名無しさん:2006/08/23(水) 10:42:28
>>135
第二次世界大戦はそれで惨敗した。
139デフォルトの名無しさん:2006/08/23(水) 12:18:31
戦後の復興も気合いだということを忘れなく。
140デフォルトの名無しさん:2006/08/23(水) 15:24:43
>>139
気合はもちろん必要だが、気合だけでは無理、ということをお忘れなく。
141139:2006/08/23(水) 23:32:10
プログラムは気合いと才能。
142七資産:2006/08/24(木) 03:40:09
そして徹夜
143デフォルトの名無しさん:2006/08/24(木) 13:24:33
閃き、発想・・・まぁ才能の一部だなぁ
144139:2006/08/24(木) 14:43:03
昼寝して目覚める数分前の夢の中に半分いる状態で、
悩んでいるロジックについて考えると答えが出たりする。
この閃きは、神から授かった才能。
145デフォルトの名無しさん:2006/08/24(木) 14:49:07
はいよかったね。
でもここはここはIEコンポーネントを使い倒すスレだよ。
146デフォルトの名無しさん:2006/08/27(日) 19:01:35
IDispatchは大体理解したのですが、IDispatchExっていうのはなんなんですか?なんなの?なんなのよー!?
マイクロコロヌ

>>144
それは、うまく右脳を使える時間帯だな。ハイヤーセルフ(高次元の自分)と呼ばれる奴だ。
今、悩んでいる出来事を書いたメモを枕元において寝るとハイヤーセルフが寝ている間に解決してくれるという。
経営者とかが良くやる手法だとか。人間誰しも持ってる能力だ。

独学で使いこなしているのであれば、なかなか評価できるが。
147デフォルトの名無しさん:2006/08/28(月) 08:27:51
IEコンポを生成したスレッドとは別のスレッドから、
IHTMLDocument2::write呼び出したら、まずいかな?
Mutexはったら大丈夫かな?
148デフォルトの名無しさん:2006/08/28(月) 09:02:21
149147:2006/08/28(月) 11:53:33
つーか実際に呼んだら死んだよ・・・
む〜今までおぼろげな理解で済ませてきたが、
Apartmentとかも勉強せねばならんな。
確かに、そっちのスレッドのがよさげ。
150デフォルトの名無しさん:2006/09/09(土) 18:32:57
上の方で誰か質問してたけど
結局Reloadを検知するのってどうやんの? 生IEなんだけど。

BeforeNavigate2 はFireされないし
wm_commandだとメニューやF5は取れるけど、
更新ボタン押されても分からないよママン
151デフォルトの名無しさん:2006/09/09(土) 21:16:01
安全な方法では無理
152デフォルトの名無しさん:2006/09/10(日) 11:52:41
既成のタブブラウザがあるのですが、
これのaxwebbrowserのプロパティを外からいじる方法ってあるんでしょうか?

153デフォルトの名無しさん:2006/09/16(土) 09:36:17
誰か答えてやれよ
154デフォルトの名無しさん:2006/09/16(土) 09:43:59
漏れの男汁を飲み干したら答えてやろう。
155デフォルトの名無しさん:2006/09/16(土) 10:03:02
>>152
タブブラウザの実装による。
COMのインタフェースとして取得できるなら望みはあるけど。
普通はそこまでしてないだろうな。
156デフォルトの名無しさん:2006/09/16(土) 16:41:08
タブブラウザ側でAPIぐらい用意してるだろ普通。
157デフォルトの名無しさん:2006/09/16(土) 17:57:00
janeのソース見る限り、外から使える仕組みになってるようには見えないぞw
158デフォルトの名無しさん:2006/09/17(日) 02:46:28
どこのJaneがタブブラウザかと
159デフォルトの名無しさん:2006/09/17(日) 13:59:17
すまん。間違えた。ぷにるはSDK公開されたら取得できるかもね
160128:2006/09/21(木) 00:37:35
>>150
なんか別件で調べてたら偶然みつけた
VK_BROWSER_REFRESH
とかいうvirtual keyがあるらしい。XP/2000のみ有効らしいが。
161152:2006/09/23(土) 23:02:35
レスありがとうございます。
とてもマイナーな洋物タブブラウザなので無理そうですね…
スクリプトエラーの警告がうざすぎるので消したかったのですが諦めます。
162デフォルトの名無しさん:2006/10/29(日) 18:23:48
IEコンポから呼ばれるイベントは、プログラムのメインスレッドとは違い
IEコンポが自分で作ったスレッド上で実行されるんですよね?
なのでそのイベント上ではメインスレッドと処理がぶつからないようにすべきなんでしょうか?
163デフォルトの名無しさん:2006/10/29(日) 18:41:04
IEの設定でJavaScriptをOFFにしても、自作プログラムに貼り付けたら普通にJavaScriptが実行された……
164デフォルトの名無しさん:2006/10/29(日) 19:47:13
>>163
自作プログラムの中は舞いコンピュータゾーン扱いされるのでは?
俺の想像だが。
165デフォルトの名無しさん:2006/10/29(日) 20:12:04
なんかのインターフェースで制限つきサイト扱いにできるよ。
OEが使ってるのもそれ
166デフォルトの名無しさん:2006/11/22(水) 17:06:05
IE7ベータのときに日本語を含んだURLのInternetOpenUrlが

A版 NG
W版 OK

だったのが、

A版 OK
W版 NG

に変わってる(IE6ではどっちもOKだった)

MSがもはや何をしたいのか分らん。A版戻したってことは
日本語URL何が何でも排除って方針でもないようだが…。

もう自分で変換することにしたよ(´・ω・`)
167デフォルトの名無しさん:2006/11/22(水) 17:07:07
A版 OK
W版 NG
ってのは正式版ではってこと
168デフォルトの名無しさん:2006/11/24(金) 13:30:42
>>116
LPWSTR で非 ASCII 文字を含む URL を渡したとき、どういう動作をしてほしいの?
UTF-8でエンコードしてURLEscape?
漏れには何を持って「OK」「NG」とするのかもわからない。
169デフォルトの名無しさん:2006/11/25(土) 10:31:20
>>168
166だけど俺に対して書いたんだよね。

>漏れには何を持って「OK」「NG」とするのかもわからない。
内部動作的な詳細は知らないが、IE6状態で動いてたものが
IE7を入れると動作が変わるのがNG。

>UTF-8でエンコードして
たぶんこれでOKなんだろうが、上に書いたとおりInternetOpenUrl
の内部動作の実際は知らないので、「互換性を保ってくれ」というの
が要望。

非 ASCII 文字を含む URLを使うなという話もあるかもしれないが、
プログラムのユーザーが何を入れるかは分らないからどうしようも
ない。
170デフォルトの名無しさん:2006/11/25(土) 14:55:35
> に変わってる(IE6ではどっちもOKだった)
IE6の動作が基準だったらこれはトートロジーで書く意味ないじゃん。
IE6がバグっててIE7でバグが修正されただけかもしれないのに。
どうせバグでもいいから動作変えるなと言うんだろうけど
まあIEコンポはSide-by-Sideでないから一理はあるな
171デフォルトの名無しさん:2006/11/25(土) 15:57:46
>IE7でバグが修正されただけかも

A版とW版って文字コード以外動作同じだと思ってたんだけど
そうじゃない場合もあるのか?

文字コードの変換(A←→W)はAPI使ってる。

IE7で『バグが修正されて』どっちも駄目になるなら
まだ整合性も有るように感じるけどね。

>> に変わってる(IE6ではどっちもOKだった)
>IE6の動作が基準だったらこれはトートロジーで書く意味ないじゃん。
そう? 166を書いた段階での参考情報として付加したまで。
172デフォルトの名無しさん:2006/11/25(土) 16:54:53
案外、インターネットオプションの「常にURLをUTF-8で送信する」がオフになっているだけというオチはない?
173デフォルトの名無しさん:2006/11/25(土) 18:25:22
>>172
>URLをUTF-8で送信
言われて、それらしきオプション、ONOFFどちらも試してみた。
けど変わらなかった。そういう問題でも無いみたい。

A版ならチェックがOFFでも日本語URL開ける。
174デフォルトの名無しさん:2006/12/05(火) 14:43:35
VB2005ではMSChartってインストールされないんでしょうか?

もしそうなら、代わりの機能とかどうにかしてMSChartを使うこととかできませんか?
175174:2006/12/05(火) 19:15:17
VB.NETスレと間違えました。
向こうで質問しなおしてきます。

失礼しました。
176デフォルトの名無しさん:2006/12/06(水) 06:12:27
表示したページのWidthやHeightを調べて、スクロールバーが出ないように
Windowのサイズを変更したいのですが、WidthやHeightがわかりません。

どのように調べればよいですか?

177デフォルトの名無しさん:2006/12/10(日) 00:28:13
IHTMLDocument2か何かで取れないっけか
178デフォルトの名無しさん:2006/12/10(日) 04:02:54
取れないよ。自動でレンダリングするからWidth,Heighなんて取っても意味ないんじゃないのかね?
179デフォルトの名無しさん:2006/12/10(日) 11:38:52
>>176
ここはどうすんの?
http://worlds-highest-website.com/
180デフォルトの名無しさん:2006/12/10(日) 11:51:36
調べたらIWebBrowser2で取ることは出来るっぽいが、>>178の通りかも知れぬ
181デフォルトの名無しさん:2006/12/21(木) 01:20:17
シェルをC#でいじくってるんですが、
BeforeNavigate2の段階で、
移動しようとしてるフォルダのpIDL取得する方法はないですか?
URLじゃなくて。
NavigateCompleteすればShellGetPathで取れるんですが
182124:2006/12/26(火) 01:21:39
お。こんなスレ出来てたのか・・・
では早速。
Internet Explorer_Hiddenウィンドウの役割と
IEのウィンドウで使われる独自メッセージについて調べているのですが、
うまく探せません。
いい情報を見かけた方、お教え下さい。
183182: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だったよ。
http://support.microsoft.com/kb/890177
GET/POSTのデータ横取用プロキシ作って組み込むか。
186デフォルトの名無しさん:2007/01/08(月) 22:32:30
IE7だと解決してるのかねぇ
187デフォルトの名無しさん:2007/01/10(水) 20:07:45
今のさっきまでこのスレ過去スレと思ってた現役だったんですね
よろしくオナガイシマス
static CComQIPtr< IWebBrowser2 > pWB2;
こんな書き方良く見かけるのですがこれはpWB2にIWebBrowser2のポインタを
設定すると考えてよろしか?
COMコンポ全然わかんないんでスマソ
188デフォルトの名無しさん:2007/01/10(水) 20:08:35
スマソあげてもうた
189デフォルトの名無しさん:2007/01/10(水) 21:35:02
Template
190デフォルトの名無しさん:2007/01/10(水) 21:42:23
ATL
191デフォルトの名無しさん:2007/01/10(水) 22:29:33
187です
VS2005なのですが、コンパイラの設定でATLを使用するに設定しないとだめ?
それでpWB2の値の意味は何なの?けっきょく
192デフォルトの名無しさん:2007/01/10(水) 22:56:31
>>191
CComQIPtr< IWebBrowser2 > 型の変数を宣言しただけで、値は設定していない。
C++の基本とVC のCOM向け拡張の両方とが解っていないと、
C++でCOMやるのは難しいと思う。
193デフォルトの名無しさん:2007/01/10(水) 23:34:43
>>192サンクス
COMとかなるべく関わりたくなかったんだけど、やらなきゃいけない羽目になって
苦しんでいます、pWB2の型は何型になるのでしょうか?
194デフォルトの名無しさん:2007/01/10(水) 23:57:13
スマートポインタの概念を理解すべし。auto_ptrでぐぐると良い。
CComPtrも基本はauto_ptrと同じだ。要するに解放忘れを防ぐための仕組み。
195デフォルトの名無しさん:2007/01/11(木) 00:09:06
>>193
pWB2の型はCComQIPtr< IWebBrowser2 >型と何度も(r
196デフォルトの名無しさん:2007/01/12(金) 01:25:36
IEコンポーネントを使っても、
開いてるページに埋まってるFrameの中を見ることは出来ないんですか?
197デフォルトの名無しさん: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デフォルトの名無しさん:2007/01/21(日) 09:11:01
学校によるんじゃない?
203デフォルトの名無しさん:2007/01/21(日) 11:50:20
卒論wardファイルw
204デフォルトの名無しさん:2007/01/21(日) 11:53:39
スクリーンショットがDonut RAPTっぽく見えるんだが
205デフォルトの名無しさん:2007/01/21(日) 15:01:08
読んでしまった
しかしながら現状としては@AB個々のプログラムの方向性は出来上がってきたものの、
個々を関連付けるプログラムの作成には至っておらず、前述されている「タブブラウザ」への
組み込み、動作テスト等もまだ出来ていない状態である。最終的には独立したプログラムと
して完成させ、デスクトップ上で起動できる状態を目指していく状態にある。

何もしてねーwwwwww
206デフォルトの名無しさん:2007/01/22(月) 00:14:04
PCに縁遠い年寄り教授をだまくらかすにはこれで十分なんだろ
207デフォルトの名無しさん:2007/01/22(月) 00:27:18
とってもw ard!

既に社会人で業務としての資料作りも慣れてる俺が言うのもなんだが、
内緒だけどあの程度プレゼン資料なら、前日の夕方から慌てて徹夜でデッチあげたりしてる。
208デフォルトの名無しさん: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デフォルトの名無しさん:2007/01/22(月) 02:13:40
今日からここは自分の卒論を晒すスレになりました

最初のかたどうぞ

214デフォルトの名無しさん:2007/01/22(月) 02:56:21
freenetみたいだけど2chネラー向きのファイル共有ソフトの提案
215デフォルトの名無しさん:2007/01/22(月) 04:17:50
タイーホw
216デフォルトの名無しさん:2007/01/22(月) 04:19:11
IEコンポーネントの使い方をやさしく指導してくれるサイトや本ってあります?
217デフォルトの名無しさん:2007/01/22(月) 08:23:35
以下のテンプレに従って質問してください。

【性別】 男/女
【年齢】 実年齢
【居住地】 現在住んでいる所を行政区程度まで
【職業】 ありのままに
【身長】 cm表記で
【体重】 kg表記で正直に
【スリーサイズ】 バスト・ウエスト・ヒップをcm表記で。
【画像URL】 全身ならびに顔写真を100万画素クラスで。
【メールアドレス】 携帯電話もしくは、プロバイダ等のアドレスを。
218デフォルトの名無しさん:2007/01/23(火) 08:01:54
相当偏差値低いらしい阪南大学。
学生の質が垣間見えた。
219デフォルトの名無しさん:2007/01/25(木) 02:20:31
はいはい、次の卒論どうぞ。
220デフォルトの名無しさん:2007/01/25(木) 18:55:29
IHTMLWindow2::execScript で外部からjavascriptを実行できることは
わかったのですが、オブジェクト型を引数にとるjavascript関数に
引数を渡して実行することは不可能なのでしょうか
(例えばVCから IUnknown* の情報を渡したいとか)。
221デフォルトの名無しさん:2007/01/26(金) 20:40:08
>>199
今更だけどなんか見つけたよ。
http://isawseashell.blogspot.com/2007/01/via-proxy.html
222デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2007/02/21(水) 14:05:15
スクリプトエラーのダイアログを非表示にしたいのですが、

Sleipnirのこれ
http://www.sleipnir-wiki.jp/original_index.php?FAQ#rbe2449f
はどういう実装になっているのでしょうか?
235デフォルトの名無しさん:2007/02/21(水) 19:36:43
IOleCommandTarget::ExecでOLECMDID_SHOWSCRIPTERRORを握りつぶす

Sleipnirの実装は知らんが、DonutRAPTのソースを落としてきて
AtlhostEx.h,ScriptErrorCommandTargetImpl.h,DialogKiller.h辺りを眺めてみればいいと思う。
対象言語がC++以外の場合は知らん。
236234: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デフォルトの名無しさん:2007/03/17(土) 06:03:52
プロセスもういっこ作ってそこで制御
239237: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
240IE7入手先:2007/03/17(土) 16:46:25
241デフォルトの名無しさん:2007/03/24(土) 22:04:58
テレビ番組の番組表なんですけど
その日によってURLが変わるんですけど
これをお気に入りにできませんか?

スクリプトのようなお気に入りってできます?

ローカルHTMLを経由してやるのは簡単ですが
ちょっと醜いやり方のような・・・
242デフォルトの名無しさん:2007/03/25(日) 02:13:04
IEコンポーネントに関係あるかなぁそれ。
日付に合わせてURLを作成して移動するbookmarklet作ればいいんでない?
243241:2007/03/25(日) 09:45:27
THX!
javascript:ってやつですね?

IE特有の機能で、多分スクリプトに関係しているので
ここか、と思いました。
普通のHTML内のスクリプトとはちょっと違いますし・・・
(上述のローカルHTMLならそうかも)

ちなみにここってBHOとかは作らないんですか?
どうもありがとうございました。
244243:2007/03/31(土) 00:23:07
ええともはやスレ違いなので質問という訳ではなく
独り言なのですが・・・

ブックマークレットってローカルファイルを表示中のIEからは
スクリプトブロックされて動かないみたいですね・・・
(XP SP2以前は動いたような?)

というかこういうのってどのスレに行けばいいのだろうか?
WSHでもHTAでもHTMLでもないし・・・
245デフォルトの名無しさん:2007/03/31(土) 00:28:43
>>244
Web制作板だっけ? そんな板があったハズ。
246244:2007/03/31(土) 16:48:21
すいません・・・何度も・・・
以前にもWeb制作板内を探したんですが
やはりWebサイトを作る、という方向性で
IE依存のスクリプトやIE固有の機能に関しては
あまり積極的ではないような・・・?
スクリプトの場合、こことかはいいのかな、とも思うんですが・・・
ttp://pc11.2ch.net/test/read.cgi/hp/1070611524/
どうも度々すみませんでした
247デフォルトの名無しさん: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デフォルトの名無しさん:2007/04/09(月) 20:00:14
他と全く同じようにしてムリならばムリなんだろう
249デフォルトの名無しさん:2007/04/16(月) 18:34:24
選択範囲の座標を得る方法を教えて下さい。
IHTMLTxtRange 辺りかな?と思ったのですが、分かりませんでした。
250デフォルトの名無しさん:2007/04/18(水) 22:08:02
このスレってまだ生きていますよね。
IEコンポ使ってhtmlの表示を行っている途中で
ある特定の<img src="xxx">が出現したら、その画像を置き換えたいのですが
やり方がどうもわかりません。
htmlを書き換えて一時ファイルを作成してとかではなく、メモリストリームとかで処理したいのですが
ヒントとか、解説があるサイトとかあれば教えてください。
251デフォルトの名無しさん:2007/04/18(水) 22:17:48
http://tvde.web.infoseek.co.jp/cgi-bin/jlab-dat/s/23689.jpg

やだやだ…そんなところ舐めないでよぉ
252デフォルトの名無しさん:2007/04/20(金) 05:58:23
>>250
馬鹿のスクリプト厨で当然.NETもよく知らない俺ですが
ActiveXならbody.onloadのタイミングとかで
document.imagesを調べる、というのでは駄目でしょうか?
253デフォルトの名無しさん: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

で、できました。スクリプトの場合と殆ど同じですね
254249:2007/04/20(金) 08:23:56
>253
どうもありがとうございます。
ただ、IHTMLTxtRange::get_textって、選択された文字列そのものですよね?
あいうえお
 ~~~~~~
  ↑ここが選択されている場合、「いうえ」が納まっている。

私が欲しいのは文字列そのものではなく、その選択されている範囲座標なんです。
例えば、xy座標で、左上が10:10、右下が20:60 みたいな。
要は、マウスでクリックした座標が、選択範囲内か、そこから外れた位置なのか?
を知りたいわけです。
255253:2007/04/20(金) 21:54:40
>>254
おおこれは大変勘違いしました。お恥ずかしい・・・
どうも申し訳ございません。忘れてください・・・
256デフォルトの名無しさん:2007/04/21(土) 14:59:24
選択されていれば範囲内
選択されていなければ範囲外
257デフォルトの名無しさん:2007/05/14(月) 21:41:12
IHTMLDocumentから何とかIWebBrowserを取得する事ってできないですかね?
258デフォルトの名無しさん:2007/05/16(水) 22:25:34
「IHTMLDocument2からIWebBrowser2を取得する」なら
「ウインドウハンドルからIWebBrowser2を取得したい」で
ぐぐって出てくるコードに該当個所がある。
259デフォルトの名無しさん:2007/05/17(木) 16:36:45
250とかぶるけど、特定のURLへのリクエストを別のURLにリダイレクトしたい。
Navigate()再発行とかするとimg srcでうまくいかないからダメ。
OnBeforeNavigate2とかのタイミングで、URLをコッソリ書き換えることが出来ればいいんだが。

IInternetProtocolImplとかそのあたりを実装するんじゃまいかと思ってるんだが、誰か知らない?
260デフォルトの名無しさん:2007/05/17(木) 18:45:00
知らんけどイベントハンドラ実装した?
261259:2007/05/17(木) 18:56:01
>>260
OnBeforeNavigateイベントでURLを取得は出来るが、LPCTSTRなので書き換えは出来ない。

たぶんイベントじゃないと思うんだよね。PassthroughAPPとかそのあたりのヨカン。
ドキュメントが少なすぎてわからん。
262デフォルトの名無しさん:2007/05/17(木) 20:24:06
OnBeforeNavigateでキャンセルしてNavigateじゃだめなん?
263259:2007/05/18(金) 11:49:16
>>262

それだと<img src=""> のときに画像表示がキャンセルされてページが遷移しちゃうからダメ。
264259:2007/05/18(金) 12:10:07
説明が足りないみたいなのでもう一回。

ある書き換え不能なサイトのHTMLに、存在しないサーバへの画像リンクが多数埋め込まれている。
オレは本当の画像の所在を知っているので、問い合わせ先サーバ名をこっそり差し替え、存在しないサーバが存在するかのようにレンダリングしたい。

プロセス外に影響がないようにしたいので、etc/hosts をいじるとかはしたくない。
265デフォルトの名無しさん:2007/05/18(金) 15:31:59
オミトロンを使えばいいような気がする
266259:2007/05/18(金) 18:37:59
>> 265
あーほんとだー できそうだー
267 ◆PAa2MRiwDQ :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 :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デフォルトの名無しさん: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( "http://www.google.com/" ), flags( 0 ), target( "" ), post( "" ), headers( "" );
iweb->Navigate2( &url, &flags, &target, &post, &headers );
エラー処理は省略してますがこんな感じです。
何か処理が足りて無いのだと思うのですが、よろしく願いします。
270デフォルトの名無しさん:2007/06/26(火) 12:29:56
>>269
Vistaを使ってないのでわからないですが、
Vistaでは他のゾーンにジャンプする場合
必ず他ウィンドウで開く仕様なんじゃないですか?

最初にInternetExplorerオブジェクトが生成された場合のゾーンが
インターネットゾーンじゃないんでしょうね。
XPでもオブジェクト生成すると
アドレスバーには何も無いものが出てくるので
初期ゾーンが何かよくわからないですが・・・

くだらないやり方ですがiexplore.exeにURLを指定して起動すれば
ゾーン間ジャンプを避けられるんじゃないでしょうか?
それで後からShell.ApplictionでIWebBrowserを探して取得する、とか。
271デフォルトの名無しさん:2007/06/26(火) 12:39:30
>>267
私はATLもMFCも知らないのでよくわかりませんが、
Invokeが呼び出されない、というからには
IDispatchが使われてないんでしょう。
IDispatch継承のカスタムインターフェースを実装したオブジェクトの場合
IDispatchが呼び出されるかカスタム部分が呼び出されるかは
場合によって異なります。
スクリプト言語やVBでレイトバインディングを使うと
IDispatchが呼び出されますが
それ以外の多くの場合にはカスタム部分が呼び出され、
IDispatchは無視されるはずです。
272VC--: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デフォルトの名無しさん:2007/08/04(土) 14:56:19
レジストリでも検索してみたら?
276デフォルトの名無しさん:2007/08/04(土) 21:40:42
regmonでみれば?
277デフォルトの名無しさん:2007/08/15(水) 11:42:40
もうどうしても解決できなかったので質問させてください。
downloadcompleteイベントだけがどうしても発生しません。

環境 EXCEL2003sp2 VBA XPSP2 ブラウザ6.0

navigatecomplete2,documentcompleteは発生します。ただrefreshをさせたときは動作しない、(上のほうのレスにもあります)ので
downloadcompleteを使いたいのです。
一番近い私と同じ症状を下記ページで見つけました
http://www.microsoft.com/japan/msdn/community/gdn/ml/WebTech_beginners.aspx
↑の「WebBrowser コンポーネントの DownloadComplete イベントにうついて」です。
がmshtml.dllはPCに入っています。参照設定に問題あるのかと思いましたが、よく分かりませんでした。
F2キーを押してオブジェクトブラウザを見てもちゃんとdownloadcompleteはありますから、問題はないと思うのですが・・。

busyをdo loopはできればやりたくないです。
StatusTextChangeを使うのもサイトによっては問題が起きるでしょうからできれば避けたいです。

問題のxlsファイルをUPすることもできます。
278デフォルトの名無しさん:2007/08/17(金) 01:28:34
すでに開いているIEのセッションからクッキーを取り出し、
IEコンポーネントを利用した自アプリでそのクッキーの情報を使う、
みたいなことは可能でしょうか?
あるいは単純に既存のIEと自アプリとでセッションを共有できればいいのですが、
レジストリでBrowseNewProcessというキーをNoにすることで全てのIEが
同一のプロセスで起動されるという情報がMSサイトにありましたが、
どうも効果がないようなんです。
279デフォルトの名無しさん:2007/08/20(月) 22:20:26
IEコンポーネントで自分のuseragentを取得するのはどうやるんだぜ?
JavaScriptsだとnavigator.userAgentだと思うがVC++のやりかたわからんのだぜ
280デフォルトの名無しさん:2007/08/21(火) 02:16:36
UrlMkGetSessionOption
281デフォルトの名無しさん:2007/08/21(火) 20:27:24
>>280
d
282デフォルトの名無しさん:2007/08/23(木) 22:03:01
IWebBrowser2::GetLocationURLでIEで表示されいてるURLを取得したのですが、IE7などのタブで現在表示されているかいないかの判定方法があれば教えて下さい。
283デフォルトの名無しさん:2007/08/26(日) 20:01:34
自己怪血。ググッて>>282にヒットしたヤシはここ嫁
http://www.codeproject.com/shell/AutomateShellWindow.asp
284デフォルトの名無しさん:2007/09/02(日) 20:24:40
IEコンポを使った専用ブラウザを作ったのだけど、
ツール>インターネットオプション>セキュリティ>レベルのカスタマイズ
その他>混在したコンテンツを表示する
をOFFにしたいんだけど、どのInterfaceから操作できるんでしょうか?
285デフォルトの名無しさん:2007/09/17(月) 02:58:47
>>128
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnbrowse/htm/top.asp

DHTMLオブジェクト モデルのおかげで、ページの構造をその場で修正できますが、
F5キーを押すか、ブラウザの[最新の情報に更新(Refresh)]ボタンをクリックしたと
たんに変更内容がすべて失われます。DocumentCompleteイベントを処理してコード
ウィンドウを最新の情報に更新することもできます(DownloadCompleteイベントは、
DocumentCompleteよりも前に発生することに注目してください)。ですから、ページを
初めてダウンロードするときに発生するDownloadCompleteは無視して、更新によって
発生するときだけ、このイベントを扱うようにします。単純なBoolean型のメンバ、たとえ
ばm_bDocumentCompletedなどを使えば、このような状況を簡単に区別できます。
286デフォルトの名無しさん:2007/09/22(土) 13:26:08
ie6までは、貼り付けたieコンポーネント内のリンクを
ユーザーが Enterキーで開くことが出来たのですが、

ie7から、開くことが出来なくなりました
キー操作でリンクを開く方法って、ないでしょうか???
287デフォルトの名無しさん:2007/09/26(水) 13:40:19
http://www.nitoyon.com/vc/tips/ie_component.htm
↑のHPの真ん中当たりのページを解析する/変更する2のソースなのですが、
コピペして実行しても期待通りの動作をしません。

if( strcmp( pszBuf, "temp") == 0){
 // innerHTML を設定
 pElement->put_innerHTML( L"hogehoge") ;
}

このif文の中には入るのですが、put_innerHTMLでHTMLにhogehogeと表示させる事が出来ません。
対象のHTMLには<p id="temp"></p>のように記述しています。
どなたか詳しい方助けてください。
288デフォルトの名無しさん:2007/09/26(水) 20:55:53
>>287
俺がやったらうまくいったよ。
そのページを書いた人もおそらくうまくいっただろうし、
お前のプログラムに何か問題があるんだと思う。

何か変にいじっていない?
289デフォルトの名無しさん:2007/09/26(水) 21:21:21
>>288
特にいじってないですが・・・
その試してみたソースうpしてもらえませんか?

それか俺のHTMLの方のソースに問題があるのかな・・・
そっちの線はうすいと思うけど・・・
290デフォルトの名無しさん:2007/09/26(水) 22:00:22
>>289
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4975.txt

IEコンポーネントの使い方2のソースを基に、
WM_CREATEでいきなりローカルのHTMLを表示するようにし、
GOボタンを押したときに例のテキスト変更の処理を行うようにしてある。

あとどうしても気に入らない点を自分のスタイルに書き換えているが気にするな。
VC++ 8だから"AtlAxWin80"にしてあることにやや注意。
291デフォルトの名無しさん:2007/09/26(水) 23:22:34
>>290
ありがとうございます。ちょっと今アホな事してしまって開発環境があぼんしてしまったので、
再度環境を整えたら試してみます。
292デフォルトの名無しさん:2007/09/27(木) 15:21:53
>>291
ん〜どうやら
pElement->put_innerHTML( L"hogehoge");
の文でデバッガが立ち上がって落ちます。
<body>タグの間に

<p><div id="temp"></div></p>

って書いてるのですが、もしかして根本的に何か違いますかコレ
293デフォルトの名無しさん:2007/09/27(木) 18:49:56
と、思ったら、ビルドをdebugからreleaseに変えたら無事動作しましたm(_ _)m
294デフォルトの名無しさん:2007/10/05(金) 05:36:23
IEコンポーネントを利用してWin32で作成したウィンドウ内にHTMLを表示させているのですが、
表示させているHTML内のJavaScriptから、アプリケーション側の関数を実行する事は可能でしょうか?
295デフォルトの名無しさん:2007/10/05(金) 20:35:21
ウイルスでも仕込むつもり?
296デフォルトの名無しさん:2007/10/05(金) 21:58:22
>>295
いえ、ただJavaScriptで出来ない処理をアプリケーションに任せようと思って・・・。
逆は出来るんですけど、JavaScript側からアプリケーションの関数の実行は出来ないのでしょうか?
297デフォルトの名無しさん:2007/10/05(金) 22:15:41
>>296
できるよ。externalで実装する。説明はめんどくさいからしないけど、
需要がある話なのでMSDNとかに載ってるんじゃないかなあ。
298デフォルトの名無しさん:2007/10/05(金) 22:19:42
>>297
externalですか。ちょっとググってみます。
なんか1から丁寧に解説してくれてるサイトがあればいいのですが、
なかなかそういうのが見つからなくて結構困ってます。
VisualStudioの構造体の中身が勝手に表示される機能をつかって、
メソッド名から機能を予測して色々試してみる方法には限界が・・・
299デフォルトの名無しさん:2007/10/05(金) 22:28:05
今アプリケーション側からJavaScriptの関数の実行はURLにjavascript:関数();でやってるのですが、
external使うともう少しちゃんとした方法で出来そうな感じですね。ただ使い方がさっぱりですが。
300デフォルトの名無しさん:2007/10/05(金) 22:31:35
>>299
おまえ>>287だろ。マルチ野郎は氏ね。
301デフォルトの名無しさん:2007/10/05(金) 23:20:22
WebBrowser1と2じゃまた違うっぽいですね。1ならいっぱい転がってるのに。。。
C#とVBばかりでなかなか読めないけど・・・
302デフォルトの名無しさん:2007/10/08(月) 22:01:28
>>301
WebBroser1と2?なんか勘違いしてる気がするなあ。

externalはキーワードとしてちょっと曖昧だったかも。GetExternalで再度。
DonutRAPTとかでも実装してた気がするから、見ようと思えば見れると思う。
COMだから、C#/VB.NETよりC++のほうが普通に楽ですよ。
303デフォルトの名無しさん:2007/10/09(火) 21:13:59
>>301
GetExternalだともっと情報が少なくなってますね・・・。
色々見てるとInvoke()とかInvokeScript()あたりが臭そうなのですが、
引数が多い上に、それぞれの引数が何を意味しているのか分からないので全く使えないのが現状です。
304デフォルトの名無しさん:2007/10/10(水) 03:06:13
IDocHostUIHandlerインターフェース実装してGetExternalでIDispatchインターフェース実装したクラスのポインタ食わせてやればいけるはずだったと思うが。
305デフォルトの名無しさん:2007/10/11(木) 04:43:11
>>304
とりあえずIDocHostUIHandlerインタフェースの実装が出来そうで出来ないところまできてます。
MSDNを参考にしているのですが、なかなかCOM自体に不慣れでてこずってます。
1日中やってて何も進まないと鬱になってきますね。何か本買ったほうがいいのでしょうか?
ネットの情報だけじゃとても出来るようになる気がしません。

それとはまた違う話になってしまうのですが、

char cmd[128];
for( i=0; i<5; i++){
  wsprintf(cmd, "javascript:test(%d);", i);
  CComVariant vUrl(cmd), vempty;
  pWB2->Navigate2(&vUrl, &vempty, &vempty, &vempty, &vempty);
}

このような形でJSの test(int) 関数を5回実行しようとしても、どうやら実際には1回しか実行されないようです。
実際に実行されるのは test(5); のみです。これは仕様なのでしょうか?普通の関数のように使えないですか?
306デフォルトの名無しさん:2007/10/11(木) 11:30:43
NavigateComplete2とか待たないといけないんじゃね
307デフォルトの名無しさん:2007/10/11(木) 12:38:17
>>306
それをキーワードに検索するといい感じのがヒットしたので使ってみました。
以下のコードをNavigate2の後に入れたのですが無限ループになってしまいますね。

while(pWB2->get_Busy(&pBusy)==VARIANT_TRUE || pWB2->get_ReadyState(&state)!=READYSTATE_COMPLETE){
  Sleep(100);
}

なんか全然COMを理解してないような気がするのですが、少しソースを見ていただけないでしょうか?
http://ossan.fam.cx/up/uploda1/loda.cgi?mode=dl&file=441
パスはieです。
308デフォルトの名無しさん:2007/10/11(木) 15:01:57
>>307
こいつはマルチ野郎なので以後放置で
309デフォルトの名無しさん:2007/10/11(木) 20:24:04
IEコンポーネントなんだけど、そのプロセスでだけキャッシュの保存先を
変更ってできる?
310デフォルトの名無しさん:2007/10/11(木) 21:23:06
>>307
当たり前じゃん。
311デフォルトの名無しさん:2007/10/11(木) 23:00:51
ゲッラゲラ笑った

C++系以外の言語から移植して気付いてないとかか?
312デフォルトの名無しさん:2007/10/11(木) 23:06:26
Returns S_OK if successful, or an error value otherwise.

313デフォルトの名無しさん:2007/10/12(金) 04:02:40
>>312
MSDN見て設計を変えてみました。

pWB2->Navigate2(&vUrl, &vempty, &vempty, &vempty, &vempty);
if(pWB2->get_ReadyState(&state)==S_OK){
 MessageBox(NULL, "ReadyStateが成功", NULL, MB_OK);
}

これでMessageBoxが出るのですが、一応目的通り、01234と表示されました。
しかし、MessageBoxをSleep(100);に置換すると 4 とだけ表示されてしまいます。
stateの値をチェックしたところ常に1であるようです。
1はREADYSTATE_LOADINGで読み込み中(?)という事らしいのですが、
ここでREADYSTATE_COMPLETEが来ないのは何故なんでしょうか?
314デフォルトの名無しさん:2007/10/12(金) 05:03:59
やはり、READYSTATE_COMPLETEが来ないです。

while(hr=pWB2->get_Busy(&pBusy), (hr!=S_OK || pBusy==VARIANT_TRUE)){
  MessageBox(NULL, "get_Busy failed, or the control is busy", NULL, MB_OK);
}

while(hr=pWB2->get_ReadyState(&state), (hr!=S_OK || state!=READYSTATE_COMPLETE)){
  MessageBox(NULL, "get_ReadyState failed or Object hasn't received all of its data", NULL, MB_OK);
}

同じような症状の方がいたのでそれを参考に調べてみて以下のコードを足してみたのですが解決できませんでした。
pWB2->put_Visible(VARIANT_TRUE);
315デフォルトの名無しさん:2007/10/12(金) 10:48:14
COMどころかスレッドも理解してないじゃん
316デフォルトの名無しさん:2007/10/13(土) 02:45:43
javascript:test();に問題があるかも
317デフォルトの名無しさん:2007/10/14(日) 10:14:14
結局どうすれば解決できるのでしょうか?
318デフォルトの名無しさん:2007/10/14(日) 10:27:56
はい
319デフォルトの名無しさん:2007/10/14(日) 13:53:42
>>317
こいつは自分で考える気が微塵もないクソ野郎です。以下放置で。
320デフォルトの名無しさん:2007/10/15(月) 00:33:58
>>319
なんでそんなに執拗にからんでくるんですか?
ちゃんと考えてるし、色々努力してます。どうやら才能がないらしいですが。。。
321デフォルトの名無しさん:2007/10/18(木) 05:17:57
質問です。
クッキーによるセッション管理をしてるサイトなのですが
途中まで、WebRequestクラスでログイン処理などをした後
その情報を使って、WebBrowserコンポーネントでそのサイトにアクセスしたいのです。
そこでクッキーを引き継がせる方法を考えたのですが
WebRequest側は、CookieContainerでクッキーを保持してるのですが
IEコンポネ側に対応したプロパティーが見当たりません。

何かいい方法はありませんでしょうか?
よろしくお願いします。

環境はC♯です。
322デフォルトの名無しさん:2007/10/18(木) 12:55:03
いい方法はあります。
323デフォルトの名無しさん:2007/10/20(土) 03:46:31
なんか、変な流れになっちまったな。
変な応答してるヤツは何がしたいんだ?

>>321
手軽な方法としては、一度、
WebBrowserのdocumentプロパティを
mshtml.IHTMLDocument2にキャストして
writeの中に、WebRequestクラスで受信したデータを放り込めば
クッキー情報含めて引き継がれるよん。
324デフォルトの名無しさん:2007/10/20(土) 04:23:16
>>323
出来ない。
APIのInternetSetCookie で設定する。
325デフォルトの名無しさん:2007/10/22(月) 19:09:00
C++ MFC で、HEADメソッドを手軽に送信できるような関数ないかな
いちいち
HEAD http://hoge.fuge.com HTTP/1.1
とか書きたくないんだぜ
326デフォルトの名無しさん:2007/10/23(火) 04:41:11
つくればいいじゃない
327デフォルトの名無しさん:2007/11/07(水) 19:01:07
Temporary Internet Files の保存先を任意のフォルダに変更したいんだけど
どこいじればいい?
同時に立ち上がってるほかのプロセスに影響なく、特定のIWebBrowserのインスタンスだけ
変更できるとうれしいんだけど。
328デフォルトの名無しさん:2007/11/07(水) 22:00:06
普通に無理だろ常識的に考えて
329デフォルトの名無しさん:2007/11/07(水) 23:41:56
IEコンポーネントを使わなければおk
330327:2007/11/08(木) 11:06:15
>>328
そうかな。。。出来ても良さそうなもんだけどなあ。。
331デフォルトの名無しさん:2007/11/11(日) 19:51:17
IEの関数コールを監視して、どこでフォルダアクセスしてるか見れば?
最悪その関数をそのプロセスに対して差し替えて実現。
332デフォルトの名無しさん:2007/11/12(月) 00:47:34
関数とかAPIとかのレベルじゃなくね?
333デフォルトの名無しさん:2007/11/12(月) 02:51:06
フック。
334デフォルトの名無しさん:2007/11/12(月) 13:26:31
定番の質問だが
・IEのクリック音を止めたい
・Temporary Internet Filesの位置を変えたい
・Proxyを追加したい。
この辺の事は、コンポネには装備されてなくて
IE自体も、直接レジストリを操作してるから
どうしてもやりたいなら、該当するレジストリの箇所を書き換えるしかない。
335デフォルトの名無しさん:2007/11/13(火) 04:33:33
レジストリを書き替えたら当然純正IEにも影響が出ることをお忘れなく
336デフォルトの名無しさん:2007/11/13(火) 04:59:44
if( strcmp(id, "foo") == 0 ){
pElement->put_innerHTML(A2OLE(boo));
}

こんな感じでidがfooである領域を書き換える事は可能だけど、
この領域に文字列を単純に追加する事って出来る?
今のところfoo内を読み込んで、strcatで文字を追加した後put_innerHTMLでやってるんだけど、
これじゃ二度手間な気がするんだが。。。
337デフォルトの名無しさん:2007/11/13(火) 18:39:20
あるツールの開発でIEコンポーネントを使うか否かを検討しています。
例えば、IEコンポーネントを用いたミニブラウザの場合、複数起動しても、
それぞれが独立したcookie情報を用いることは可能でしょうか。

338デフォルトの名無しさん:2007/11/13(火) 20:34:07
独立したCookieってどういうこと?
つかIE複数立ち上げて見ればわかるんじゃね
339デフォルトの名無しさん:2007/11/13(火) 20:54:19
>>337
ブラウザが起動してる限り有効なクッキーの話だよね?
>>338がいうようにIE複数起動したときの動作がそのままIEコンポアプリ複数起動だとおもう。
たぶんクッキーは別になるんじゃないかな。
340デフォルトの名無しさん:2007/11/13(火) 23:10:30
ちょっと質問が分かりにくかったようで、すみません。
例えば、mixiなどのオートログインが可能なサービスの場合、Cookie情報で
これを実現しています。ブラウザを複数起動しても、そのCookie情報が当然、
同じものがサーバーに送られます。(でないと、オートログインできません)

で、IEコンポーネントを用いたツールは、あくまでも別ツールなので、
仮にmixiにアクセスしたからと言って、自動でログインされても困るんですね。
そこで、Cookie情報はツールとブラウザとで異なったものにしておきたい。
また、ツールを複数起動した場合も、ツール毎にCookieは分けたいんですね。

で、IEの標準の動作では、複数起動しても、Cookieは共有というか共通になって
しまうんですが、IEコンポーネントの使い方次第で、Cookieをブラウザとは
別のものとして管理できるのかを知りたかったのですが、可能でしょうか。
341デフォルトの名無しさん:2007/11/13(火) 23:18:49
Cookie自体はIEとの共有は避けられないと思った。
ただ、プロセス毎にCookieを利用しないようには出来るから、そのツール側で扱う情報を
Cookie以外の手法でなんとかするのがいいんじゃないの?
342デフォルトの名無しさん:2007/11/13(火) 23:47:10
BeforeNavigate2でヘッダ弄ればなんとでもなるんじゃね?
343デフォルトの名無しさん:2007/11/14(水) 00:06:51
返答ありがとうございました。
実験してみます。
感謝です
344デフォルトの名無しさん:2007/11/15(木) 05:40:24
delphi7proでTwebbrowserを使って
チェックボックスやボタンを自動でクリックしたりするのをするようなソフトを作っています
そこで
e := WebBrowser1.OLEObject.Document.documentElement.getElementsByName('なまえ');
としているのですがオートメーションオブジェクトでサポートしていませんというエラーが出てしまいます
このエラーはどのような意味なのでしょうか
345デフォルトの名無しさん:2007/11/15(木) 05:41:56
調べましたが、とっかかりさえ見つからないような状況ですので
わかる方がいらっしゃったら教えてください
346デフォルトの名無しさん:2007/11/15(木) 11:07:04
getElementsByNameメソッドがあるのはDocumentだけだからじゃね?
"documentElement"が余計なんじゃね
347デフォルトの名無しさん:2007/11/16(金) 20:21:41
ありがとうございます
e := WebBrowser1.OLEObject.Document.getElementsByName('なまえ');
e.Item(0).click();
のような感じで自動クリックできました
348デフォルトの名無しさん:2007/11/17(土) 02:20:50
IEコンポーネントでは、HTMLをサイトから読み込んだあと、<IMG>や<IFRAME>内のCGやHTMLを
自動的にサーバーにアクセスして取得しますが、BeforeNavigate2のように、それらのデータを
取得しにいく前にイベントとして拾う方法がありましたら、教えてください。

また、redirectで別サイトにgetを送信する前に、それをイベントとして取得する方法があり
ましたら、これについてもお願いします。
349デフォルトの名無しさん:2007/11/17(土) 04:28:54
自分でイベント作ったら?
350デフォルトの名無しさん:2007/11/17(土) 16:40:32
>>349
そこまでの自由度あるの?
351デフォルトの名無しさん:2007/11/17(土) 18:21:37
>>348 Proxy
352327:2007/11/28(水) 10:52:27
NtQueryValueKeyにフックをかけて
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache
にウソを返すようにしたんだけど、切り替わらないorz
353デフォルトの名無しさん:2007/11/30(金) 07:17:28
レジストリの値変更しても再起動するまで反映されないんだから
システムがどっかメモリ上にキャッシュしてるんだろ
354デフォルトの名無しさん:2007/12/01(土) 18:17:18
VBを使用しております。
IEオブジェクトに表示中の画像ファイルを、指定のフォルダに保存するには
どのようにすればよいでしょうか?
要するに、マウスの右クリックで表示される「名前を付けて画像を保存」を自動行いたいのです。

アクセスするたびに、画像は変わるため、URLから指定しDLすることは出来ませんでした。

IEオブジェクトの保存したい画像のアイテムは
ie.document.all.item(x)
取得できました、この先がわかりません。

おわかりの方がおられましたらお教えください
355デフォルトの名無しさん:2007/12/01(土) 20:39:58
SRC見てダウンロードすればいいんじゃね
356デフォルトの名無しさん:2007/12/01(土) 22:12:03
>>355
URLを見てDLということですか?
アクセスのたびに変わるからNGと記載したのですが・・・
357デフォルトの名無しさん:2007/12/01(土) 23:58:20
SRCプロパティのことじゃねーのかハゲ
358デフォルトの名無しさん:2007/12/02(日) 13:40:06
>>357
うーんよくわかりません。
そのSRCプロパティのURLからDLすると、画像ファイルが変更されNGなのですが?
359デフォルトの名無しさん:2007/12/02(日) 16:48:18
いみがわからない
360デフォルトの名無しさん:2007/12/02(日) 18:02:41
>>359
下のセキュリティ画像みたいにアクセスすると画像が変わります。
https://signup.live.com/newuser.aspx?mkt=JA-JP&revipc=JP&ts=4164537&sh=kfjF&ru=http%3a%2f%2fmail.live.com%2fmail%2fmail.aspx&rollrs=04&lic=1
変わると困るので、IEに表示中の画像がほしいのです
361デフォルトの名無しさん:2007/12/04(火) 18:18:45
アクセスするたびに変わるのは、画像じゃなくてURLのほうじゃねえかw
それも変数の値が変わる程度で、呼び出し先のCGIは固定だか?
362デフォルトの名無しさん:2007/12/04(火) 20:44:25
http://tool-6.net/?cnum
VS2005でアセーションエラーが出まして
なぜhMyIEがNULLになるのかがわかりません。
363デフォルトの名無しさん:2007/12/04(火) 22:56:08
CreateWindowの戻り値がNULLだから。
364デフォルトの名無しさん:2007/12/04(火) 23:21:29
>>361
画像のURL指定し、ブラウザで表示させ、更新してもそのたびに変わるのですが?
いったいどう固定すると、画像も固定できるのでしょうか?
365デフォルトの名無しさん:2007/12/04(火) 23:41:44
IEコンポーネントでphpを表示させているのですが
同じURLで、GETで渡す値も全く同じにしてphpにアクセスすると
キャッシュを読み込んでいるだけなのか、php自体が実行されません。

php内でMySQLと連携してDBを操作させているのですが、2回目の
アクセス以降はDBの操作がされていません。

同じURL、同じGET値でも毎回phpが実行されるようにするにはどうすればいいでしょうか。

試しにIUrlHistoryStgを使って履歴を削除しようと思いましたが
下記のようにインスタンスを取得しようとすると、CLSID_CUrlHistoryが
定義されていない識別子だと言われてしまいます。

IUrlHistoryStg* pUrlHistoryStg = NULL;
hr = CoCreateInstance (CLSID_CUrlHistory, NULL, CLSCTX_INPROC, IID_IUrlHistoryStg, (void**)&pUrlHistoryStg);
366デフォルトの名無しさん:2007/12/05(水) 01:28:41
GET値に乱数を追加する
367デフォルトの名無しさん:2007/12/05(水) 11:27:57
>>364
画像URLは固定でリロードするたびに画像の内容が変わってしまうと言うことか
だからIEコンポで表示させた画像を取得したいと言うわけか
一時キャッシュ覗いて探してみるとか・・・
まぁ無理なんじゃね?
368デフォルトの名無しさん:2007/12/05(水) 18:48:02
>>363
解決するためにはどうすればよいですかね?
369デフォルトの名無しさん:2007/12/06(木) 11:29:13
いくら考えても解決出来ません。
お願いします。
解決方法を教えて下さい。
370デフォルトの名無しさん:2007/12/06(木) 19:16:38
371デフォルトの名無しさん:2007/12/06(木) 20:32:51
うっほほほへ!??!
できた!!!
クハハハハハハwwww
やっべぇwwww何コレwwwww気付かなかった俺バカスwwwww
ありがとうございましたぁ!!
うっひょひょひょwwww
372デフォルトの名無しさん:2007/12/07(金) 19:12:42
C++を使用しています。

子ウィンドウを立ち上げてIEコンポーネントのブラウザを表示させたいのですが、
一度子ウィンドウを消して再度立ち上げるとファイルのダウンロードが発生して表示することができません。

原因に心あたりがある方、教えていただけませんか?
373デフォルトの名無しさん:2007/12/08(土) 03:35:54
>>360
1.ドキュメント全体をビットマップで保存する
2.特定画像のみビットマップで保存する
3.キャッシュから見つけだして画像を表示する
と、いろいろ試してみたが、そのページのころころ変わる画像はキャッシュされてないっぽいので、
VBでやるなら、1か2になるかなあ
本気でやるならVBじゃなくてC++にしたほうがいいかと
374デフォルトの名無しさん:2007/12/16(日) 12:04:27
IHTMLDocumentのwrite()ってjavascriptのdocument.writeとは違いますよね。
最初にabout:blank開いてからIHTMLDocument#write()すると書き込めるけど
特定のアドレスのHTML開いた後にIHTMLDocument#write()すると
いったんHTMLがクリアされて書き込みになる。
javascriptのdocument.writeみたいに、いつでも書き込むことができるインタフェースないですかね。
innerHTMLとかouterHTMLは事情により使いたくないのです。
375デフォルトの名無しさん:2007/12/16(日) 12:52:00
同じだよ
読み込み完了後ならjavascriptのdocument.writeもページの置き換えになる
やってみろ
376デフォルトの名無しさん:2007/12/16(日) 13:20:44
ページ移動時のカチッって音を消すにはどうすればいいのでしょうか?
377374:2007/12/16(日) 13:28:08
>>375
うむープラガブルプロトコルとか特殊なことやって
ページ表示した後だから、うまくいかんのかなー
378デフォルトの名無しさん:2007/12/16(日) 16:54:12
>>376
visible = falseにしとくか
レジストリいじるかしかない
379374:2007/12/16(日) 16:57:30
ああああ、言っている意味を把握した。
なるほど、確かにHTML完全に読み終わった後の
javascriptのdocument.writeもページ置き換えになるね。
根本的な部分で理解が欠けていた・・・
ふむーじゃあ何とかしてDocumentCompleteさせなきゃいいのか。
380デフォルトの名無しさん:2007/12/16(日) 17:21:29
innerHTMLとかで書けばいいんでないの?
381デフォルトの名無しさん:2007/12/16(日) 17:38:58
>>378
pWB2.setVisible(FALSE);
じゃダメですか?何も変化がないのですが・・・
382デフォルトの名無しさん:2007/12/16(日) 19:23:51
>>380
いや、それだと糞重いんで、なんとかしてdocument.write使いたいなと。
iframe src="about:blank"
として、そこに書き出すことで解決!
383374:2007/12/16(日) 19:30:09
>>382は漏れ。
あと気になることが。
IHTMLDocument2#writeサンプルの後半部分
  hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
  param->vt = VT_BSTR;
  param->bstrVal = bstr;
  hresult = SafeArrayUnaccessData(sfArray);
  hresult = document->write(sfArray);

cleanup:
  SysFreeString(bstr);
  if (sfArray != NULL) {
    SafeArrayDestroy(sfArray);
  }
たいていは大丈夫なんだけど大量にdocument->write呼んでたら
SafeArrayDestroy(sfArray);
で、heapが壊れたとかで落ちた。
で、cleanupのとこをこうしたら落ちなくなった。
cleanup:
 if (bstr != NULL) {
  SysFreeString(bstr);
  hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
  param->vt = VT_BSTR;
  param->bstrVal = NULL;
  hresult = SafeArrayUnaccessData(sfArray);
 }
 if (sfArray != NULL) {
  SafeArrayDestroy(sfArray);
 }
これはサンプルのバグかな。
384374:2007/12/16(日) 19:31:53
SafeArrayDestoryって要素の中身もvt見て、
VT_BSTRだったら勝手にSysFreeStringをやってくれるんだろうか。
だから先にSysFreeStringしちゃうと2重Freeで落ちるのかな。
385デフォルトの名無しさん:2007/12/16(日) 20:27:16
IEコンポを使っている2ちゃんねるブラウザがその方法で追記してるから
不可能ではないはず
386デフォルトの名無しさん:2007/12/16(日) 20:31:31
セキュリティーゾーンとかでいろいろ面倒だった気はするが
387デフォルトの名無しさん:2007/12/16(日) 23:43:52
CHtmlView内で起こったスクリプトエラーをフックできないのですか?
おしえてエロい人
388デフォルトの名無しさん:2007/12/16(日) 23:57:04
>>385
よく見かけるdelphiのコードではレイトバインディングで型変換はシステム任せにして
えいやっとwriteするけれど、きっとディスパッチの手間だけ速度では損するんだろうな。
389374:2007/12/17(月) 00:01:35
>>385
あ、おいらへのレス?
about:blankで開いたページならdoument.writeでも切り替わらないよ。
2ちゃんブラウザはたいていabout:blankに書いてるし。
あとはjavascriptでロード時に実行されるように書くか。
390デフォルトの名無しさん:2007/12/17(月) 12:31:40
>>269
Vistaにしたら、そうなってしもうた。
>>270の方法で解決しそうだけど回りくどいな。
391デフォルトの名無しさん:2007/12/17(月) 13:13:13
>>387
できます
392デフォルトの名無しさん:2007/12/17(月) 17:10:09
>>391
いいからその方法をとっとと書けよクズが。
知っててワザとやってるなら性格悪いだけのクズだな。
393デフォルトの名無しさん:2007/12/17(月) 18:29:35
どうしよっかな〜
394デフォルトの名無しさん:2007/12/17(月) 19:43:06
>>392
すごい時刻ゲットしてるからって嫉妬すんなよw
395デフォルトの名無しさん:2007/12/17(月) 20:56:43
なんでこのスレには糞しかいないんだよ。
IEコンポーネント使う少ない人達同士仲良くしろよ畜生
396デフォルトの名無しさん:2007/12/17(月) 21:09:38
自分の質問の答えが返ってこない=糞
ですか。そうですか。
397デフォルトの名無しさん:2007/12/17(月) 23:03:59
>>395
自称糞じゃないお前がじゃんじゃん質問答えろ
手始に387からな、12時間まってやるから早くしろよ
398デフォルトの名無しさん:2007/12/18(火) 12:51:04
自分の質問の答えが返ってこない=糞だとは誰も言ってねぇだろが。
>>391さんは性格がいいですね?こうですか?わかりません><
399デフォルトの名無しさん:2007/12/18(火) 23:41:02
じゃあ横で俺が答えてみようか。
つーかキーワードでググったらここの>>235がヒットしたんだが。
400デフォルトの名無しさん:2007/12/19(水) 14:50:25
まぁ言ってる事に同感できなくはないが、口が悪い。
スレが荒れる。
401デフォルトの名無しさん:2007/12/20(木) 12:36:32
IEのレンダリング結果において、XY座標から、近傍のテキストを
取得するにはどうしたらいいですか?
IHTMLDocument2::elementFromPoint()
で、エレメントを取得できるのはわかったのですが、もっと 1 文字単位で
文字を検出したいのです。できたら、エレメント内あるいはドキュメント全体における
文字の位置がインデックスでわかるとうれしいです。
402デフォルトの名無しさん:2007/12/20(木) 16:38:01
すくなくともIHTMLDocumentやElementの何かの関数を使えば取れる、
というものではないはず。
血を吐くような努力が必要。てか事実上無理だと思う。
403デフォルトの名無しさん:2007/12/20(木) 23:32:04
工夫次第で無理ではないな。
404402:2007/12/20(木) 23:32:51
>>403
だったら具体的なやり方書いてよ、天才プログラマーさん。
405デフォルトの名無しさん:2007/12/20(木) 23:36:14
>>404
指定座標位置付近の文字をカーソルで選択して
その選択文字列を読み取ればいい。
406403:2007/12/20(木) 23:50:21
>>404
君はボンクラ
私は天才プログラマー
ということでいいかね。
407デフォルトの名無しさん:2007/12/21(金) 03:13:15
いいえ
408デフォルトの名無しさん:2007/12/21(金) 08:06:24
409デフォルトの名無しさん:2007/12/21(金) 08:07:35

Vista IE 7.0.6
Vista Grani 3.1
Vista Sleipnir 2.6.1
Vista Firefox 2.0.0.11
Vista Opera 9.24
Vista Safari 3.0.4
410デフォルトの名無しさん:2007/12/21(金) 08:47:06
>>405
その指定座標付近の文字を選択ってのはどうやるんだ。
選択時のマウス動作をエミュレートすんのか。
411デフォルトの名無しさん:2007/12/21(金) 12:28:59
>>408
精神的ブラクラ
412401:2007/12/21(金) 12:50:22
みなさん、ありがとうございます。やっぱりちょいと難しそうですね。
413デフォルトの名無しさん:2007/12/21(金) 13:07:00
>>410
カーソルで選択ってものすごい基本的なWindowsAPIじゃん。ウインドウズのプログラマなら誰でも知っているだろ。
マウス動作をエミュレートって・・・アフォカ
414デフォルトの名無しさん:2007/12/21(金) 15:31:56
>>413
おお?それはテキスト入力にフォーカス当たった状態のこといってんの?
そうじゃなくブラウザ上のふつうのテキスト部分の話とおもったんだが。
それもできるんか。
415デフォルトの名無しさん:2007/12/21(金) 16:02:58
>>414
基本的なことをまったく理解していないな。ブラウザ上で普通に範囲選択してCtrl+Cあるいは、右クリックでコピーが実行できるじゃん。
それをプログラム的に実行するだけ。
416デフォルトの名無しさん:2007/12/21(金) 16:05:02
>>415
ぜひ、そのコードを教えてください
417デフォルトの名無しさん:2007/12/21(金) 21:19:44
これでWM_COPYとか言ってきたらズゴーなんだが。
418デフォルトの名無しさん:2007/12/21(金) 23:05:37
JavaScript技でそんなのがあったな。Selectionオブジェクトだかを作って
その占有領域の座標を取って処理するの。座標から近傍文字、の逆バージョンだけど、
ユーザーが選択操作してなくてもできてたので、この応用でなんとかならないかな?
419デフォルトの名無しさん:2007/12/21(金) 23:42:10
420デフォルトの名無しさん:2007/12/21(金) 23:46:50
>>415
いやだから、もっと具体的なコードかけよ、そこまでいうなら。
マウスエミュレートもプゲラって言った以上、それもしないコードだぞ?
まず選択するためには、選択始点のテキストがどの座標に存在するか取得しないといかん。
ってかこの時点でこの件は目標は達成なんだが。
421デフォルトの名無しさん:2007/12/26(水) 10:05:19
IHTMLElement から、実際の描画に使われてるフォントの種類やサイズを
調べるにはどうしたらいいですか? style とか見ても null なんですが、
他にどこを見ればよいものやら。
422デフォルトの名無しさん:2007/12/28(金) 13:10:50
いまだに>>378が分からないのですが・・・
pWB2->put_Visible(VARIANT_FALSE);
では音は消えませんでした。もう少し詳しく教えて頂けませんか?
423デフォルトの名無しさん:2008/01/08(火) 16:22:27
サムネイルのような画像を、そのリンク名と関連付けしてデータベース化したいと思っています。

表示中のサムネイル画像ファイルをキャッシュフォルダから拾う方法はあるでしょうか。
キャッシュフォルダには別名で格納されているようで、特定する方法が分かりませんでした。
作成日やサイズで特定しようにも、確実とは行きません。

直接GETする以外で何か良い方法をご存知の方、ご教示いただければと思います。
424デフォルトの名無しさん:2008/01/08(火) 19:10:19
WinInet経由でいいなら、GetUrlCacheEntryInfoでキャッシュの情報が取れる。
425423:2008/01/09(水) 09:59:39
>>424
これで何とかなりそうです。
すばらしい情報をありがとうございました。
426デフォルトの名無しさん:2008/01/13(日) 23:43:43
プロキシ設定を自分のIEコンポーネントだけ別にすることはできますか?
InternetSetOption(NULL,.... )だとシステム全体に影響が及んでしまうので、
hInternetを指定して制限をかければいいのだと思いますが
コンポーネントが利用中のhInternetを知る方法が無いので困っています
427デフォルトの名無しさん:2008/01/14(月) 18:45:46
>>426
私のソースにはこんなのがありました:
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, pInfo,sizeof(INTERNET_PROXY_INFO),0);

これで動いてたような気がするけど、何年も前のブツなので要検証。
428デフォルトの名無しさん:2008/01/17(木) 15:01:00
IEコンポーネントを表示せずに、NavigateやDownloadCompleteを使って、
データの取得を行うことは可能なのでしょうか?
429デフォルトの名無しさん:2008/01/17(木) 15:27:09
可能です
430デフォルトの名無しさん:2008/01/17(木) 15:33:44
どうも有り難うございます。
う〜ん、すると、Windowsサービス化も可能なんでしょうか?

System.Windows.Forms派生のクラスをnewした時点で、
変なことになっちゃうんでしょうか?

Windowsサービスは作ったことないので想像もつかないのですが、
通常、UIはサービスを持てないのですよね?
デスクトップとの対話をサービスに許可、とか設定せずに、
普通のデーモン的なデータ取得を行えると、だいぶ方向性が広がるのですが。
431デフォルトの名無しさん:2008/01/17(木) 15:36:02
ううっ、下記の部分、逆でした。
>通常、UIはサービスを持てないのですよね?

Windowsサービスは、普通はUIを持てないのですよね。
ユーザがログインしない状況でも、IEコンポーネントでデータ取得を
行えると嬉しいのですが。
432デフォルトの名無しさん:2008/01/17(木) 21:18:39
それはIEコンポでなければならないのか?
433デフォルトの名無しさん:2008/01/18(金) 09:07:26
う〜ん、取得したDOMを操作して、色々処理するので、
結局、何らかのブラウザエンジンは必要になるのです。

まぁ、ゲッコーとかに乗り換えるっていう手はあるのでしょうが、
IEコンポーネントを頑張って使い続けるか、
オープンソースのブラウザエンジンから不要なところをばっさり切って
使うかは、今後の大きな課題にはなるのですが‥‥。
434デフォルトの名無しさん:2008/01/18(金) 18:48:48
>>430
そういうことは、人に聞くより自分で試したほうが早いぞ。
435デフォルトの名無しさん:2008/01/19(土) 12:12:52
質問があります
IEではTAB、SHIFT+TABキーでフォーカスの移動が行われますが、
これを外部から行うにはどうすればいいでしょうか
TABキーイベントを送る、というのはナシの方向で・・・
436デフォルトの名無しさん:2008/01/19(土) 19:45:22
SetFocus
437デフォルトの名無しさん:2008/01/20(日) 03:11:38
IEのフォーム部品はウィンドウを持ってないからSetFocusは役に立たない
438デフォルトの名無しさん:2008/01/20(日) 04:34:22
IHTMLDocument2::all、
IHTMLDocument2::activeElement、
IHTMLElement2::focus
439デフォルトの名無しさん:2008/01/20(日) 10:06:41
>126-127
面白そうだと思ってMinGW入れてやってみた。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
g++ -Wall -c MSHTMLTest.cpp -o MSHTMLTest.o
In file included from MSHTMLTest.cpp:2:
HTMLWindow.h:7:22: mshtmhst.h: No such file or directory
In file included from MSHTMLTest.cpp:2:
HTMLWindow.h:73: error: ISO C++ forbids declaration of `IDocHostUIHandler' with no type
HTMLWindow.h:73: error: expected `;' before '*' token
K:\WINLCC\BIN\MAKE.EXE: Error code 1
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

……人の作ったソースをmakeするのって、ほんと難しいよな。
440デフォルトの名無しさん:2008/01/20(日) 10:16:03
えーと、要するにmshtmhst.hが無いわけだ。
>127のアーカイブと、MinGWのincludeフォルダの中には無し。

何故かBCCのincludeにあったやつを突っ込んで再度make。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
g++ -Wall -c MSHTMLTest.cpp -o MSHTMLTest.o
g++ -Wall -c HTMLWindow.cpp -o HTMLWindow.o
g++ -Wall -c OleClientSite.cpp -o OleClientSite.o
g++ -Wall -c OleInPlaceSite.cpp -o OleInPlaceSite.o
g++ -Wall -c DocHostUiHandler.cpp -o DocHostUiHandler.o
DocHostUiHandler.cpp: In member function `virtual HRESULT DocHostUiHandler::GetHostInfo(DOCHOSTUIINFO*)':
DocHostUiHandler.cpp:109: error: `DOCHOSTUIFLAG_NO3DOUTERBORDER' was not declared in this scope
DocHostUiHandler.cpp:109: warning: unused variable 'DOCHOSTUIFLAG_NO3DOUTERBORDER'
K:\WINLCC\BIN\MAKE.EXE: Error code 1
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
順調かと思ったら、何だこれは…
441デフォルトの名無しさん:2008/01/20(日) 10:16:18
>>436-438
ありがとうございます!
試してみます!

ダイアログのように一発でやる方法があるかとさがしておりました!
442デフォルトの名無しさん:2008/01/20(日) 10:30:21
"DOCHOSTUIFLAG_NO3DOUTERBORDER" が定義されていない…

mshtmhst.h内で定義されてるはずのものなのか、それ以外のどこかなのかは
判らんが、とにかく無い。
443デフォルトの名無しさん:2008/01/20(日) 10:47:47
うちのMsHtmHst.hタンには定義されてるよ
444デフォルトの名無しさん:2008/01/20(日) 10:49:20
よし、Platform SDK落として、中のmshtmhst.hをMinGWのincludeに突っ込んだら出来た。
445デフォルトの名無しさん:2008/01/23(水) 23:59:25
すみません教えてください
取得したpElementがインラインフレームか
普通のフレームかを判定したいのですが
良い方法はあります?
446デフォルトの名無しさん:2008/01/24(木) 00:28:36
tagName見るなりIHTMLIFrameElement取得してみるなりでいいんじゃね
447デフォルトの名無しさん:2008/01/24(木) 01:07:54
>>446
ありがとうございます
これをヒントに調べてみます
448デフォルトの名無しさん:2008/01/31(木) 10:55:56
ho
449デフォルトの名無しさん:2008/01/31(木) 13:00:15
IInternetProtocol::Start()でゴニョゴニョするコードを書いているんだが、
呼び出し元のIWebBrowser2を取得することって出来ないのかな。
複数ウィンドウのブラウザで、IWebBrowser2が複数存在しているので、
グローバル変数では解決出来ない。
スレッドが分かれているわけでもないのでTLSでも解決できない。
450デフォルトの名無しさん:2008/01/31(木) 16:02:17
>>449
IWindowForBindingUIでググれ
451デフォルトの名無しさん:2008/02/09(土) 01:17:35
すみません 教えてください
過去ログで見た気もしますが 見つけられなくて・・・

get_innerHTMLでHTMLソースを取った場合はIEが有る程度整形して
ますが これを メニュー → 表示 → ソースで
表示されるようにオリジナルの大文字・小文字もある状態で
取りたいのですが可能でしょうか?
452デフォルトの名無しさん:2008/02/09(土) 02:09:13
kanou
453451:2008/02/09(土) 02:27:55
>>452
すみません 困っています
もし よろしければ教えていただけないでしょうか?
454デフォルトの名無しさん:2008/02/09(土) 23:24:16
MFCでURLジャンプ時のスクリプトエラー非表示はどうすればいいですか?

IOleCommandTarget::Execで
OLECMDID_SHOWSCRIPTERRORを使うのでしたら、
どのように使うのか教えていただきたいです。

【関連事項】
AtlhostEx.h
ScriptErrorCommandTargetImpl.h
DialogKiller.h
455デフォルトの名無しさん:2008/02/10(日) 00:54:23
今日のメニューについて
http://zoomtv.atspace.com/?G&1zbuh@HiSpeedVision
456デフォルトの名無しさん:2008/02/12(火) 13:40:22
CreateWindow("AtlAxWin", "Shell.Explorer.2"・・・
としたときにsubmitやクリックできますか
457デフォルトの名無しさん:2008/02/27(水) 13:53:42
IE7になってマウスの真ん中ボタンで新しいウインドウで
開くようになったんですが、IEコンポーネントを使った
あぷりでは、これは自分で書くしかないんでしょうか?
それとも簡単に有効にする方法があるんですか?

知っている方いましたら教えてください。
458デフォルトの名無しさん:2008/02/27(水) 14:41:58
IEはIEコンポーネントを使ってるだけで、
真ん中ボタンクリックで新規ウィンドウはIEに実装されただけのもの。
IEコンポーネント自体にそういう機能があるわけではない。
459デフォルトの名無しさん:2008/02/27(水) 14:48:16
>>458
ありがとう。
ということは自分でやるしかないんですね。
かなり大変そうですけど・・
460デフォルトの名無しさん:2008/02/27(水) 15:53:19
>>459
おいおい、ボタン押してウィンドウ開くなんて大した手間じゃないだろう
461デフォルトの名無しさん:2008/02/27(水) 17:46:36
>>456
AtlAxGetControl
AtlAxGetHost

>>460
新しいウィンドウで開くとなると結構処理が必要じゃない?
462デフォルトの名無しさん:2008/02/28(木) 11:28:49
大抵のダブブラウザは実装してる
463デフォルトの名無しさん:2008/03/01(土) 04:18:40
ATL使わずにIWebBrowser2のイベントを取得したいんだけど、
どういうコード書けばいいのか参考になるサイトとかないですか

探し方が悪いのかATLなコードしか見つからないんです。
464デフォルトの名無しさん:2008/03/01(土) 04:27:15
そんな事できるのか・・・
465デフォルトの名無しさん:2008/03/01(土) 05:01:32
>>463
DWebBrowserEvents2のこと? だったら普通にOLEコントロール扱うようにすればいけるんじゃね?
まあMFCとかATLとか使わずにやろうとすると死ぬほど面倒らしいが。
466デフォルトの名無しさん:2008/03/01(土) 06:19:08
>>465
うん、DWebBrowserEvents2。
WindowsMobile版のIEコンポーネントを使ってるんだけど、
ATLでの実装がコンパイル通らなくて、
ATLなしでの実装にするか・・・?ってとこにたどり着いたとこ。
死ぬほど面倒ならATLが通る方法調べるほうが楽かなぁ。。
467デフォルトの名無しさん:2008/03/01(土) 06:20:39
コンパイラはなに?
468デフォルトの名無しさん:2008/03/01(土) 06:29:49
VS2005Pro、C++でやってる
469デフォルトの名無しさん:2008/03/01(土) 08:03:29
コンパイルエラーの内容を書いた方がいいのでは。
あと接続ポイント周りをちゃんと理解すると光が見えるかも。
470デフォルトの名無しさん:2008/03/01(土) 10:10:11
>>466
Essential COMに載ってるよ。ネストクラスしたりとかなり面倒だったけど
ATLなし(Win32SDKのみ)でイベント取得までは確認できた。
471デフォルトの名無しさん:2008/03/01(土) 10:50:34
VC++あるなら、CHtmlViewのソースでも見るとか。CHtmlViewが使えるならそれ使うに越したことはないと思うが。
472デフォルトの名無しさん:2008/04/17(木) 02:59:40
IEコンポーネントのJavaScriptを一括で

無効にする方法ってありますか?
473デフォルトの名無しさん:2008/04/17(木) 22:50:05
あるんじゃないの?
俺はやったことないけど、使っているブラウザ (Donut RAPT)が
ボタン1つでオンオフできる機能を持っている。
474デフォルトの名無しさん:2008/04/24(木) 20:30:33
表示してるページで右クリックメニューに追加した「irvineにすべてのURLを送る」みたいのを
自動で実行するのはどうしたらできますか?
475デフォルトの名無しさん:2008/04/27(日) 02:08:05
MFCで組んでるんですが、いろんなサイトを見ていくと使用メモリが増える一方。
メモリリークしていると思ったほうがいいのでしょうか?
それとも履歴蓄積によるものと考えてしまっていいのでしょうか?
476デフォルトの名無しさん:2008/04/27(日) 02:28:31
>>475
メモリリークっていうか、開放し忘れじゃね?
よくあるみたいだよ。
477デフォルトの名無しさん:2008/04/27(日) 03:49:52
IEコンポーネントを使うとそうなるって問題もあったはず。
一旦アプリを最小化すると開放されたようになる。
本当にリークしてるのか、本当に開放されてるのか、分からないけどね。
478デフォルトの名無しさん:2008/04/27(日) 12:15:51
>>477
最小化すると減るのはワーキングセットの量。
479デフォルトの名無しさん:2008/04/29(火) 08:38:59
タスクマネージャーとかで見る使用メモリが増えていくからといって
メモリリークしてるとは限らない。
ttp://kkkon.hp.infoseek.co.jp/tips/MFC/MemoryLeak.shtml
この辺参考にしてみるといいかもね。
480デフォルトの名無しさん:2008/05/08(木) 17:50:12
なんかFlash関係が動かなかったりするね。
481デフォルトの名無しさん:2008/05/08(木) 19:30:41
IEコンポーネントでページを開くときに、ソケットで別の端末にページのURLを送って
同じページを開かせるようなプログラムを作ったんですけど

CComQIPtr<IWebBrowser2> pWB2
pWB2->Navigate2(メッセージで送られたURL)

としてURLにジャンプしようとすると、

「"URL"が見つかりません。パスまたはインターネットアドレスが正しいかどうかを確認してください。」

というメッセージボックスが表示され、メッセージ受信側のクライアントはURLにジャンプできません。

IEコンポーネントで表示させた、そのURLのハイパーリンクを直接クリックした時や
直接IEを起動してアドレス直打ちをした場合、正しくページに飛ぶことが出来ました。

また、メッセージ受信側がIE7を入れている場合ではジャンプできない現象が起きましたが
IE6を入れているPCで試したところ、メッセージ受信側もジャンプすることが出来ました。

IE7になってからNavigate2周りで何か変更があったのでしょうか。
おとなしくIE6に戻るしかありませんか?
482デフォルトの名無しさん:2008/05/09(金) 02:27:06
IEコンポーネントでHTML内に記述されたJavascriptの関数を実行したいのですが、
可能でしょうか?HTMLは自分で用意したものです。
483デフォルトの名無しさん:2008/05/09(金) 20:27:54
>>482
できるよ。
スクリプトを動的に追加することができるから追加したコードで静的なコードを実行すればいい。

HTMLを自分で用意するんだったらIEコンポーネントでやる用途が想像できないけど?
484デフォルトの名無しさん:2008/05/10(土) 04:39:22
>>483
http://homepage3.nifty.com/LILILIN/HOWTO/activex_javascript.htm
このページの情報を参考にして実装する事ができました。

では逆にHTML側から、ブラウザ(アプリケーション)の関数を実行する事は可能でしょうか?
さすがに無理ですかね、それは・・・
485デフォルトの名無しさん:2008/05/10(土) 06:30:53
>>484
window.external経由ならわりと楽勝で。
486デフォルトの名無しさん:2008/05/18(日) 09:43:36
IE拡張(BrowserObjectHelper)からマイドキュメントフォルダにファイル書き込んでるんだけど
IE保護モードがじゃまして書き込めねぇ・・・
いくつかMSのサイト読んでレジストリいじったりしたが、相変わらず駄目だ
誰かやり方おしえて。
487デフォルトの名無しさん:2008/05/18(日) 12:21:05
アウトプロセスのCOMサーバでも作ってデータ送って書き込ませれば?
488デフォルトの名無しさん:2008/05/19(月) 09:31:02
それは最後の手にしたいな。
http://www.microsoft.com/japan/msdn/ie/general/protectedmode.aspx
書き込み時に、ブローカープロセスの昇格ってのが出るようにできるっぽいけど、
ここにあるようにレジストリに書いたがうまくいかん。
489デフォルトの名無しさん:2008/05/19(月) 09:37:46
ああ、COMサーバーのCLSIDを登録するってことなんだな、これは・・・
うう、めんどくせー
490デフォルトの名無しさん:2008/05/23(金) 14:42:17
「ページ内検索」がでねーよ
誰か知ってる?

失敗例:
::SendMessage(browser.GetSafeHwnd(), WM_KEYDOWN, VK_CONTROL, 0);
::SendMessage(browser.GetSafeHwnd(), WM_KEYDOWN, VK_F, 0);
::SendMessage(browser.GetSafeHwnd(), WM_KEYUP, VK_F, 0);
::SendMessage(browser.GetSafeHwnd(), WM_KEYUP, VK_CONTROL, 0);
491デフォルトの名無しさん:2008/05/23(金) 19:58:46
492デフォルトの名無しさん:2008/05/27(火) 02:44:37
ダイアログに WebBrowser を 貼り付けて 表示しています。
その ページ内で window.close() を 呼んだら

ダイアログ自体を終了するようにしたいのですが、 WebBrowserEvents
のイベントを取得するような方法しかないのでしょうか?

493デフォルトの名無しさん:2008/06/07(土) 17:33:24
ローカルにある js ファイル ページ表示後に実行したいので、
DWebBrowserEvents の Document Complete 後に
Document に script タグを追加しようとしているのですが、
追加されません。

このやり方だとだめなのでしょうか?

どこかにサンプルがあったりしますか?

494デフォルトの名無しさん:2008/06/13(金) 19:11:21
Win32APIすれから来ました


HTMLを解析したいのでIHTMLDocument2を使おうと思っています

CComPtr<IHTMLDocument2> aDoc;
aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT);
aDoc->put_URL(CComBSTR("http://~")); //URLの読み込み(のつもり)
aDoc->get_images()


この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。
まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。

コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
495デフォルトの名無しさん:2008/06/13(金) 19:23:39
>>494
ここにサンプルがあったよ
ttp://d.hatena.ne.jp/seraphy/20061124#p3
496デフォルトの名無しさん:2008/07/23(水) 00:24:40
IWebBrowser2から作ったIEコンポーネントで、フラッシュゲームのページでゲームのキー入力が
効きません助けてください!
IOleInPlaceActiveObject::TranslateAcceleratorもメッセージループ内に入っています!
497デフォルトの名無しさん:2008/07/23(水) 09:21:35
そういや俺もニコニコとかのフラッシュ使ったページでキー入力効かなかったことがあったな。
どうやって解決したか思い出したら書き込むよ。
498デフォルトの名無しさん:2008/07/23(水) 11:55:03
質問です。
戻る、進むことが出来るか否かを判断するにはどうすればいいんですか?
IWebBrower2のメソッドにそれらしき関数が見当たらなかったんだけど
499デフォルトの名無しさん:2008/07/23(水) 20:05:14
DWebBrowserEvents2のCommandStateChangeかなにか
500デフォルトの名無しさん:2008/07/24(木) 18:42:51
>>499
遅レスですがありがとうございました!
501デフォルトの名無しさん:2008/07/24(木) 20:13:24
VC+ATLでタブブラウザっぽいものを作っています。
DWebBrowserEvents2のDISPID_NEWWINDOW2イベントで、
新しく開く遷移先のアドレスを知るためにはどうしたらいいんですか?
OnNewWindow2のハンドラでIEが立ち上がるのをキャンセルするまでは分かったんで巣が。。
Donutのソースみたけどいまいち分かりませんでした・・・
502デフォルトの名無しさん:2008/07/25(金) 19:21:06
NewWindow3にしちゃうのは?
503デフォルトの名無しさん:2008/07/28(月) 14:53:44
WSH/VBScriptからNewWindow?でcancelできない?
504デフォルトの名無しさん:2008/08/08(金) 20:08:34
IE6が入っているPCでは問題なく動作しているプログラムが
IE7が入っているPCで正しい動作をしてくれません。

ttp://www.nitoyon.com/vc/tips/ie_component.htm
このサイトを参考にC++(VC++)でIEコンポーネントを呼び出しています。

調べてみると、どうやらIE7でNavigate2を呼び出すと
正しくページに移動できないみたいですね。
色々調べてみたんですけど、VC++でのIEコンポーネントの使用で
IE7に対応させるような方法が分かりません。

IE7環境でVC++からIEコンポーネントを呼び出して
正しくページ移動できるようなプログラムは可能でしょうか。
505デフォルトの名無しさん:2008/08/09(土) 16:49:59
しらんけど↓でなんとかならんかのお
Microsoft Web Browserコントロールのセキュリティを制御する:CodeZine
506デフォルトの名無しさん:2008/08/09(土) 18:40:03
ページから移動するんじゃなくて、ページごとに作り直すといいんじゃない?
507デフォルトの名無しさん:2008/08/27(水) 22:13:09
>>504
AtlAxCreateControlExを使用した方法だとうまくいきますよ。

508507:2008/08/27(水) 22:19:03
>>504の詳細を聞かずにレスしたので、思っているのとは違う結果になるかもしれない。
補足すると、タブを使用しない。キオスク端末見たいなことをやりたければ、
AtlAxCreateControlExを使用した方法で作れます。

509デフォルトの名無しさん:2008/08/31(日) 16:14:38
IE7でアクティブなタブがshellwindowsのどれか、わかりますか?
510デフォルトの名無しさん:2008/09/14(日) 12:25:13
VC6 + MFCで開発してます。
IDispatchExの利用方法で分からない事があります。

IEコンポーネントのGetDocument()で得られるIHTMLDocument2をQIして
IHTMLDocumentを取得しました。
さらに、get_Script()で得られるIDispatchをQIし、IDispatchExを
取得しました。

こうして得られたIDispatchExを利用して、HTMLのオブジェクトにアクセス
可能な事を確認しました。しかし、JavaScriptで

window.hoge = 1;
foo = 2;

と書いてある場合、hogeにはアクセス出来ますが、fooにはアクセスできません。
windowオブジェクトに明示的に代入したオブジェクトにしかアクセスできない
ようです。
どうすれば、fooにアクセスできるでしょうか。
511デフォルトの名無しさん:2008/09/21(日) 12:02:52
>>510
厳密に調査したわけではないが、アクセスタイミングによるものだと思う。
windowオブジェクトは、初期状態で存在しているため、
直にアクセスできるのだと思われる。
全てのイベントを拾って、ポーリングすればアクセスできるタイミングが分かるはず。

 試しに html側 head内にてvar i=1000を定義、body onloadにて、
iを初期値と比較して結果を出す関数を作成。
全てのイベントを拾って、GetDispID( 変数名, fdexNameCaseInsensitive, &dispID )
を実行して、DISPID_UNKNOWN != dispIDが成立したら関数InvokeExにて値を変更したら
onload関数の結果が変わるのを確認した。
512デフォルトの名無しさん:2008/09/26(金) 12:43:09
javaのwin32oleでブラウザ作ってるんですが
表示中のHTMLの任意のタグの内容を取る方法って何ですかね?
例えばクリック→srcElement取得ってどうやったらいいのか・・・。
513デフォルトの名無しさん:2008/09/27(土) 01:17:13
win32oleを使用したことが無いので詳しくは分からないが、IHTMLDocument2のI/Fが取れれば、
メンバ関数elementFromPointでできると思う。
514デフォルトの名無しさん:2008/09/27(土) 22:09:26
IE7 + Vista + 保護モードだと、BHOからファイル書き込みが
所定のパスにできないですよね。
これを解決しようと奮起してます。
ファイル書き込み部分をCOM化しようとしてるんですが、
どうにもうまくいきません。
http://msdn.microsoft.com/en-us/library/bb250462.aspx
ここを読んだんですけど、
If your extension launches a COM server
that is not registered in HKEY_CLASSES_ROOT,
gets dynamically registered through COM and launched via CoCreateInstance,
add a REG_SZ value called IID containing the CLSID of the COM server,
add the following setting to your policy.
IID (REG_SZ) contains the CLSID of your extension.
これって、BHOのCOMコンポーネントのCLSIDを
レジストリのElevationPolicy以下に登録するんじゃないんですかね。
ファイル書き込みのCOMを生成した瞬間にダイアログが出ることを期待してるんですが、
ぜんぜんそうなりません。
515514:2008/09/27(土) 22:11:01
ファイル書き込みのCOMはBHOと同じDLLに含まれてます。
ファイル書き込みのCOMを別のEXEサーバーにおいて、
BHOから呼び出したんですが、COM生成はできても、
ちょっとするとEXEサーバーから勝手に切断されてしまいます。
どうしていいのか、さっぱりわかりません・・・
516512:2008/09/30(火) 09:54:56
>>513
ありがとうございます
やってみます
517hiro:2008/10/08(水) 14:47:16
こんにちは。
http://www.nitoyon.com/vc/tips/ie_component.htm
のサンプルコードを落として VS.net 2003 Standardで
開いてビルド実行、アドレスバーに打ち込んでGOを押しても
メッセージが出て(atlcomcli.h Line148)で
実行時にエラーになります。
comは初心者でよく分かりません。
どなたか対処法をご存知ないでしょうか?
どうかよろしくお願いします。
518デフォルトの名無しさん:2008/10/08(水) 17:40:03
>>517
そこの「VC++.NETでの注意点」ってとこ読んだか?
519hiro:2008/10/08(水) 18:50:31
はい、読みました。

昔会社でやってた頃、VC6.0のときは作動できたのですが、
なぜか自宅のVC++.net 2003 Standardではエラーが出るのです。
520デフォルトの名無しさん:2008/10/09(木) 16:40:56
>>519
該当サイトのサンプルをダウンロードして、VC6ではOKだっが
VS2005 PROでは駄目だね。
atlライブラリか、ActiveXの扱いの問題か。
少し試したが原因が分からないので、ソースを修正してた。
以下ソースを参考にしてみてくれ。
リソースエディタで、ActiveXコントロールを削除して、
STATICテキストを任意サイズにし、コントロールIDを"IE_WINDOW"と設定する。
そして、main.cを以下のようにコード修正
int WINAPI WinMain
省略
::CoInitialize(0);
// ATLモジュールを初期化します。
省略
// ATLモジュールの後始末です。
_Module.Term();
::CoUninitialize();
省略

// ActiveXコントロールのインターフェースを要求します。
//if (AtlAxGetControl(GetDlgItem(hDlg, IDC_IE), &punkIE) == S_OK)
{
HWND hwnd = 0;

hwnd = ::GetDlgItem( hDlg, IE_WINDOW );
if ( 0 != hwnd )
{
::AtlAxCreateControlEx( OLESTR( "{8856F961-340A-11D0-A96B-00C04FD705A2}"), hwnd, 0, 0, 0, IID_NULL, 0 );
::AtlAxGetControl( hwnd, &punkIE );
}
省略
521デフォルトの名無しさん:2008/10/11(土) 22:58:55
html 関連の質問です。
VC++ 2005、WinXPでプログラムを組んでいますが、あるhtmlファイルからanchorタグを読み込み、リンク先のページを取得したいと思います。
一々、自作のライブラリでリンク先を検出するようだと、作成時間がかかって仕方ないので、どなたか、htmlをパースしてリンク先のアドレスを取得できるような
ライブラリや関数などをご存知の方、教えていただけないでしょうか?


----

c++相談室から誘導されてきました。
よろしくお願いします。
522デフォルトの名無しさん:2008/10/11(土) 23:10:07
その程度の用途でIEコンポーネントなんか使ったら余計時間かかる気がするが。
正規表現かなんかで抽出したほうがはやくね?
523デフォルトの名無しさん:2008/10/11(土) 23:18:16
マジっすか……
正規表現だとboost辺りかな……

とりあえず、boost使ってみることにします。

どうもありがとうございました 
524デフォルトの名無しさん:2008/10/12(日) 13:17:44
BHOを作ってるのだが、
VSのプロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド
にiexplorer.exeのパス書いて、デバッグ実行すると、
IEが起動して自動的にアタッチしてくれる。
それはいいんだが、なぜかそうやって起動するとIE7+Vistaでの保護モードが無効になってしまう。
その状態でインターネットオプション見ても保護モードにチェックは入ってるのに。
普通にIE起動したら保護モード。
誰か理由説明できる人いる?
525デフォルトの名無しさん:2008/10/12(日) 14:12:10
その状態で2ch見ても保護モードにならんの?
526デフォルトの名無しさん:2008/11/12(水) 03:01:30
IOleCommandTargetとかIDocHostUIHandler辺りを使ってIEコンポのカスタマイズやってるんだが、
どうもうまくいかないのでレジストリのキー検索してみた。
するとIDocHostUIHandlerが発見できない。(BD3F23C0-D43E-11CF-893B-00AA00BDCE1A)
OleViewでみてもやっぱりない。
これはウチのレジストリが壊れてる?それともこれが普通で他に原因がある?
PC2台(Pro,Home)とも同じ状況なんで判断が付かない。

環境は XP SP2(一台はSP1から更新、もう一台はSP2デフォ) / IE7(6から更新) / .NET2.0
参考サイトはこの辺 ttp://msdn.microsoft.com/en-us/library/aa770041(VS.85).aspx
527デフォルトの名無しさん:2008/11/12(水) 03:54:47
Three interfaces are at the heart of WebBrowser Control UI customization: IDocHostUIHandler, IDocHostUIHandler2, and IDocHostShowUI.
These are interfaces that you implement in your application when you want to modify the WebBrowser Control.
528もう見てないよな?:2008/11/14(金) 23:05:07
>>523
> マジっすか……
> 正規表現だとboost辺りかな……
>
VCならRegExpをCOM経由で使えば正規表現がつかえるらしい

VCで正規表現 (要IE5.5以上)
ttp://page.freett.com/mortes/prog/regexp.htm

「IE5.5以上」なんで条件を満たしていないWindowなんてあるの?
529デフォルトの名無しさん:2008/11/14(金) 23:33:38
素のWindows2000
530デフォルトの名無しさん:2008/11/15(土) 18:48:42
RegExpはVBScript 5.0だろ
IE5.0だろ
素のWindows2000だろ
531デフォルトの名無しさん:2008/11/15(土) 21:27:32
鬼車使っとけ
532デフォルトの名無しさん:2008/11/20(木) 10:06:31
IDocHostUIHandlerを実装したクラスを適用させるにはどうすりゃいいんでしょうか?
NavigateComplete2でSetUIHandlerはイクないみたいなことが色々書いてありますし、
それでは初めてのNavigateの時にはXPスタイルを適用できないみたいですし・・・
GWL_USERDATAをGetWindowLongでIAxWinHostWindowを取得してSetExternalUIHandlerでも出来ないことも無いですが、
D&Dが使えなくなるっぽいなのでこちらもだめみたいです
533デフォルトの名無しさん:2008/11/20(木) 10:55:09
MFCのソースでも見ればいいんじゃね? Platform SDKに入ってなかったか。
534532:2008/11/20(木) 11:41:01
MFCの環境が無いので見れません
ごめんなさい
535デフォルトの名無しさん:2008/11/20(木) 11:57:27
>>534
>>533は「無償配布されてるPlatform SDKを入れてみろ」って言ってるんだと。
536デフォルトの名無しさん:2008/11/20(木) 12:06:41
>>535
Platform SDKは既に入れてありますが、MFCのソースはどこにありますでしょうか?
mfcディレクトリにはヘッダしか見受けられませんが・・・
537デフォルトの名無しさん:2008/11/20(木) 13:02:22
src\mfcにないならないんじゃない?
538532:2008/11/20(木) 13:23:30
src\mfcを検索してみましたが、IDocHostUIHandlerの記述はないようです

本題に戻って、お願いします
539デフォルトの名無しさん:2008/11/20(木) 16:57:23
540532:2008/11/20(木) 17:24:56
>>539
こんな方法で出来るとは・・・
神様ありがとうございます
541sdaf:2008/11/26(水) 16:16:56
adsf
542デフォルトの名無しさん:2009/01/08(木) 18:22:37
ie7でShellWindowsの中からactiveなものを見つけることはできないっすか?
543デフォルトの名無しさん:2009/01/11(日) 15:33:39
MFC(VC++6.0)のCHtmlViewで、右スクロールバーの「現在のスクロール位置」の取得
方法が分かる方はいらっしゃいますでしょうか?

いろいろ調べて、試してみたりしたのですが、どうしてもうまくいかないのです…
544デフォルトの名無しさん:2009/01/11(日) 19:13:07
VS2008 MFCにてIEコンポーネントを使用して自動巡回ソフトを作りたいと
考えています。
IEコンポで指定のページまでは簡単に表示出来たのですが、
フォームに文字(ID/PASS)を入力したり、ボタンをクリックしたりする
のはどうやったらいいのでしょうか?

参考になるソースなどあるサイトなどあったら教えて下さい。
545デフォルトの名無しさん:2009/01/11(日) 20:12:13
まあIHTMLDocument*あたりからDOM経由すればそういうことはできるが、
普通はそういう面倒なことはせずに直接自分でフォーム送信時に送られるリクエストを作成するだろうな。
546デフォルトの名無しさん:2009/01/16(金) 23:22:51
>>517
亀だが「AtlAxWin」の部分をVSのVerにあわせてみては?

参考URL
ttp://fssblog.blog50.fc2.com/blog-entry-219.html
547デフォルトの名無しさん:2009/01/31(土) 11:54:03
<form 〜>
<input type="button" value="test" onClick="gotoPage();">
</form>

上の例でボタンを押した時、gotoPage(); を実行させたいんですが
初心者なんでよくわかりません

pCollection = pDocument->getElementsByName( _bstr_t( L"namae" ) );
MSHTML::IHTMLFormElementPtr pForm( pCollection->item() );
pForm->submit();

だと、gotoPage(); が実行されないみたいです
誰か教えて下さい。・゚・(つ_⊂)・゚・。ウェーン
548デフォルトの名無しさん:2009/01/31(土) 16:35:51
var
vHtmlDocument: IHtmlDocument2;
begin
vHtmlDocument := EmbeddedWB1.Document as IHtmlDocument2;
vHtmlDocument.parentWindow.execScript(
'var select = document.getElementById("test");input.onClic();',
'javascript');
end;
デルファイだとこんなの
C#わかんない
本当は
IHTMLDocument4;
IHTMLEventObj;
IHTMLDocument2;
IHTMLElementCollection;
IHTMLElement3;
上記のインターフェース使って
やる・・・・
549デフォルトの名無しさん:2009/02/18(水) 13:55:20
>>546
>>517 じゃないけど助かりました!
550デフォルトの名無しさん:2009/03/16(月) 02:31:52
そうか
551デフォルトの名無しさん:2009/03/22(日) 02:24:55
IE8になって、IEコンポーネントを使って値を設定するときのセキュリティの変更があったようです
INPUT TYPE="FILE"
に設定するのに今までフォーカスを当ててからSendKeyを使っていたのですが、どうやら駄目になった模様・・・

解決方法はあるのでしょうか
552デフォルトの名無しさん:2009/03/22(日) 21:29:34
知らんけどタイミングが合ってないだけじゃないのか?
553デフォルトの名無しさん:2009/03/23(月) 10:21:37
能無しはけーん
554デフォルトの名無しさん:2009/03/23(月) 22:46:49
それはそれは。。。がんばって!
555デフォルトの名無しさん:2009/05/18(月) 21:54:46
>>551
execwbで張り付けとか?
556デフォルトの名無しさん:2009/05/19(火) 20:22:25
INPUT TYPE="FILE"でc:\fakepath\〜が返ってくるんじゃ使えねー
557デフォルトの名無しさん:2009/05/19(火) 21:04:35
>>551
clickしてダイアログにsendkeys
558デフォルトの名無しさん:2009/05/20(水) 01:55:30
>>556
インターネットオプションでセキュリティ緩め
559デフォルトの名無しさん:2009/05/22(金) 03:00:50
テキストフィールド上で右クリックしたときに出てくるコンテキストメニューに
独自の項目を追加したいんですが、どうやるのかやさしく教えてください。
googleツールバーの「カスタム検索を実行」的な感じにしたいのですが・・・
一行のテキストフィールドだけにでてくるのかな?これ・・・
560デフォルトの名無しさん:2009/05/22(金) 19:57:49
>>559
KB177241
561デフォルトの名無しさん:2009/05/28(木) 01:43:26
>>560
グーグルってこの方法なの?レジストリにないみたいだけど・・・

この方法で階層付きのメニューとかも追加できる?
Item0_0 > Item1_0
> Item1_1
みたいな
562デフォルトの名無しさん:2009/06/09(火) 21:56:52
navigate "about:home"がダメになったんだけど代わりにどうすりゃいい?
563デフォルトの名無しさん:2009/06/09(火) 22:56:58
>>562
GoHomeじゃだめなの?
564デフォルトの名無しさん:2009/06/09(火) 23:13:54
そんなのあったんか!ありがと
565デフォルトの名無しさん:2009/06/09(火) 23:55:44
about:homeなんて初めて聞いたぞw
566デフォルトの名無しさん:2009/06/10(水) 16:23:22
おれも自慢したいが思いつかん
567デフォルトの名無しさん:2009/06/10(水) 20:59:54
568デフォルトの名無しさん:2009/06/11(木) 12:31:56
about:homeはie8βでフィードバックされてるが直ってないから仕様だな
569デフォルトの名無しさん:2009/06/15(月) 13:45:28
すみません教えてください
現在 get_outerHTMLにてソースの保存を行っています。
ただ、これですとIEが成形したHTMLソースしか取り出せません。

たしか、他にやり方があって、それを使えばコメント等も
忠実に取れるのですが忘れてしまって・・・
当時の仕様は実際IEが扱っているHTMLソースでOKだったのすが
仕様変更で検索しても見つからず困っています

たしか、OLE等でメニューを操作する系だったと思ったのですが

どなたか ご存知の方がいましたら教えてください
570デフォルトの名無しさん:2009/06/15(月) 14:16:43
ExecWB OLECMDID_SAVEAS OLECMDEXECOPT_DONTPROMPTUSERでググれ
571デフォルトの名無しさん:2009/06/15(月) 23:06:57
アクセラレータを自作してるんですが、うまくいきません。
↓はソフマップの中古買取価格を調べる目的で、Donutのserchi.iniに記載しているものです。
これをアクセラレータに移行させようと思うんですが…
http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/KWD=(このあとに目的の商品名)

↑の「tid=SPSF」「gid=SPSF030200」みたいのが複数あって、しかもURLの途中に出てくる場合の
記述がよくわかりません。
最後は<parameter name="KWD" value="{selection}" />でいいと思うんですが…
572デフォルトの名無しさん:2009/06/15(月) 23:17:28
>>571
ttp://msdn.microsoft.com/ja-jp/library/cc287851(vs.85).aspx
そのまま書けばいいんじゃね?
573571:2009/06/15(月) 23:34:59
>>572
そのままだとソフマップのページから「検索条件を入力して下さい。」というメッセージが出て、
弾かれてしまうんですよ。

<activityAction context="selection" >
<execute action="http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/">
<parameter name="KWD" value="{selection}" />
</execute>
</activityAction>

とりあえずMSのドキュメントまた読み直してみます。
574デフォルトの名無しさん:2009/06/16(火) 01:20:48
>>573
<os:execute method="get"
action="http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/KWD={selection}" />
これじゃだめなの?8入れてないから検証できない
575デフォルトの名無しさん:2009/06/16(火) 01:37:04
>>573
URL直接見れる?KWDの前に"?"が入ってないか?
直接見れないならパケットモニタで見てみろよ
もしそれなら>>574でいけるはず
文字が化けるならexecute 要素で accept-charset="Shift_JIS"とか試して見れ
576デフォルトの名無しさん:2009/06/21(日) 17:01:32
教えてください
DocumentCompleteのタイミングで
現在のドキュメントがフレームの子かどうか調べれるでしょうか?
577デフォルトの名無しさん:2009/06/21(日) 17:11:48
>>576
http://support.microsoft.com/?scid=kb%3Bja%3B180366
機械翻訳だから英語の方を見た方がいいかもね
578デフォルトの名無しさん:2009/06/21(日) 21:46:00
CHtmlViewを使った場合、ブラウザ画面上のテキストを選択状態(マウスでなぞって色が変わっている状態)に
なっている部分のHTMLソース上の位置を知りたいのですが、どうすればいいのでしょうか?
FireFoxではテキストを選択状態にしてその部分を右クリックすると「選択した部分のソースを表示」という
メニューが選べるようになっていて、それと同じようなことをしたいのです。

選択位置の知り方は、HTMLソース上の文字位置(バイト位置)でもいいですし、
DOM上の何番目のタグのinnerTextの何バイト目か?ということでもいいです。
ご存じの方教えてください。
579デフォルトの名無しさん:2009/06/21(日) 22:19:03
selection使えばいいんじゃね?
http://msdn.microsoft.com/ja-jp/library/ms535869(en-us).aspx
580デフォルトの名無しさん:2009/06/21(日) 22:52:20
>>579
それでいけそうな気がします。ありがとうございました。
581デフォルトの名無しさん:2009/06/21(日) 23:44:44
同じ人かな。うまくいったのなら"できたよー"とか一言お願いしますです。
582デフォルトの名無しさん:2009/06/22(月) 05:58:10

>>577
ありがとうございます。
早速みてみます。
納期がせまっていたので助かります
583578:2009/06/22(月) 22:52:30
>>581
できました。下のページのソースコードが参考になりました。
http://starkravingfinkle.org/blog/tags/uncategorized/page/3/

ハイライト部分のテキストを加工した後、HtmlDocumentの<body>をget_bodyで取り出して
outerHTMLでソース保存したら希望のことができました。
584デフォルトの名無しさん:2009/07/04(土) 18:51:08
IE8の開発者ツールをCHtmlViewから扱えないかな?
585デフォルトの名無しさん:2009/07/05(日) 14:41:41
お願いします。
CHtmlViewでHTML文書のリンク部分をクリックしてもリンク先に飛ばないようにできないでしょうか。
やりたいことは、リンク部分のテキストの一部をマウスでなぞって選択してコピーしたいのです。
しかし選択しようとしてクリックした段階でリンク先に飛んでしまいます。

CHtmlViewの親Wnd側のPreTranslateMessageの中でWM_LBUTTONDOWNを処理しないようにしたら、
テキストが選択できないようになり、これはダメだと分かりました。
586デフォルトの名無しさん:2009/07/05(日) 15:13:51
Aタグとかを片っ端からSPANか何かに書き換えとくとか
587デフォルトの名無しさん:2009/07/05(日) 15:20:59
とりあえずページ遷移片っ端から蹴るならBeforeNavigateあたりだっけか
588585:2009/07/05(日) 15:30:27
BeforeNavigate2()でCancel=TRUE;にするとリンク先に飛ばせないことができました。
しかしマウスでなぞってもリンク文字の一部分だけを選択することができず、、、orz

リンクとしての見栄えを保ったまま一部分だけコピーするのはどうも無理っぽいですね。
>>586さんのような方法にせざるを得ないと思います。
589デフォルトの名無しさん:2009/07/08(水) 21:15:34
「WSH(・∀・)スレッド! Part 4」で質問したら、スレ違いと言われたのでこちらで質問させて頂きます。

IEで、Ctrl+Nでウィンドウの新規作成を行った時と等価な状態(セッション情報等を継承)で、
WSHでIEのウィンドウの新規作成を行い、
かつそのIEのウィンドウのオブジェクトIDを得るにはどうしたら宜しいでしょうか?
590デフォルトの名無しさん:2009/07/08(水) 22:17:40
IEコンポーネントを使ってブラウザを作ってます。
読み込み時等のエラーの際に独自のhtmlを読ませる処理を考えてます。
HTTPステータスをチェックしようと考えてますがWEBを探してもなかなか
見つかりませんでした。_| ̄|○
IEコンポーネントを使った際にステータスコードを拾うことは可能でしょうか?
InvokeでHTTPステータスをチェックして別のhtmlを読ませようと考えてます。
591デフォルトの名無しさん:2009/07/09(木) 01:03:12
>>589
Shell.applicationはIEでないのでスレちがい
592デフォルトの名無しさん:2009/07/09(木) 23:34:03
590応援アゲ

593デフォルトの名無しさん:2009/07/16(木) 07:13:32

>>590
IE6では、404はとる事は可能。5xx系は試したことが無いのでわからない。

>>InvokeでHTTPステータスをチェックして別のhtmlを読ませようと考えてます。
まさにこのとおりだよ。

以下のような感じ。
IWebBrowser2からIID_IConnectionPointContainerを取り
IID_IConnectionPointContaineから、FindConnectionPoint( DIID_DWebBrowserEvents2)を実行して
DIID_DWebBrowserEvents2からAdviseを使用して自作したInvokeを登録する。

これにより、登録したInvokeがステータス後とに実行される。

594デフォルトの名無しさん:2009/07/17(金) 21:25:39
CHtmlViewのIHTMLDocuent2のget_innerHTMLのバグについて回避方法をご存じの方お知らせ下さい。
環境はVS2005SP1、IE7です。

例えば以下のようなHTMLファイルを作っておきます。

<html><body><ruby><rb>糞</rb><rt>くそ</rt></ruby>IE</body></html>

このHTMLファイルをCHtmlViewにドロップして表示します。
そして以下のコードを実行します。

IHTMLDocument2* doc = (IHTMLDocument2*)m_htmlview.get_Document();
IHTMLElement *body;
doc->get_body(&body);
CComBSTR tmp;
body->get_innerHTML(&tmp);
body->put_innerHTML(tmp);
body->get_innerHTML(&tmp);
body->Release();
doc->Release();
::OutputDebugString(tmp);

これは<body>内部をget_innerHTMLで取り出し、そのままput_innerHTMLで書き込み、またget_innerHTMLで取り出すだけのものです。
<body>内部のコードがそのまま取り出せたら正解ですが、なぜか結果は、

<RUBY>糞</RB><RT>くそ</RT></RUBY>IE

となるのです。
<RUBY>の後の<RB>が消えるのです。
いろいろ試したところ、<body>の最初に出てくる文字にルビを振ると、その部分だけ<RB>が消えることが分かりました。
他にもいろいろとIHTMLDocuent2がらみで不可解な動作が多いです。
595デフォルトの名無しさん:2009/07/25(土) 20:30:54
質問です。http://www.nitoyon.com/vc/tips/ie_component.htmのページのソースに
HTMLドキュメントの読み込み完了のイベントを取得したかったので、しかるべき場所に

SINK_ENTRY_EX(SINKID_COUNTEREVENTS, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)

void _stdcall OnDocumentComplete(){
MessageBox(NULL, "COMP", NULL, NULL);
return;
}

を追加しました。すると、プログラム実行時に
Debug Assertion Failedというエラーが出るようになってしまいました。
何か間違っているでしょうか?
ちなみにエラーダイアログにはExpression: ((HRESULT)(hr) >= 0)と表示されています。
596デフォルトの名無しさん:2009/07/26(日) 01:12:55
>>595
Debug Assertion Failedのダイアログにエラーの起こったソースファイルと
行番号が書いてあるはずですが?
597デフォルトの名無しさん:2009/07/26(日) 03:03:21
void _stdcall OnDocumentComplete(IDispatch *pDisp, VARIANT *URL)
みたいに引数を入れたらエラーが出なくなりました。失礼しました。

>>596
このエラーの場合、大体問題のある箇所とは全く関係ないソースファイルの行番号が出るんです・・・。
598デフォルトの名無しさん:2009/07/26(日) 08:59:08
>>597
結論を言うと引数を設定しなかったことにより、スタック不整合による破壊が発生し、
OnDocumentCompleteから戻るときに不定の位置へ実行が戻っている為。




599デフォルトの名無しさん:2009/07/27(月) 01:00:42
IE で新しいタブを開いて,そのタブを操作するにはどうすればよいですか?
IShellWindowsPtr で現在開いているタブについては取得&操作できるのですが.
600デフォルトの名無しさん:2009/07/27(月) 03:30:56
前後の差分
601デフォルトの名無しさん:2009/07/27(月) 16:41:49
アクティブなタブはどうすりゃ取れる?
602デフォルトの名無しさん:2009/07/27(月) 19:11:57
>>598
なるほど、わかりやすいです。
でも、コンパイルの時点で警告して欲しいですね。
603デフォルトの名無しさん:2009/08/03(月) 12:03:04
ちょっと特殊な使い方の質問です
<body>
  ・
  ・
  ・
 <h4>porfile</h4>
 <p> プロフィール本文 </p>
  ・
  ・
  ・
</body>

こんな感じの既存HTMLファイルがありまして、<h4>の直後の<p>テキストが取得したいです
idはまったく振ってなくて、getElementByID等では取れない状態です
<h4>profile</h4>は必ず一つしかないので、それは取れるのですが・・・
getElementで取ってきたタグの「次の」タグを取る方法は無いのでしょうか?
よろしくお願いします
604デフォルトの名無しさん:2009/08/03(月) 16:35:24
nextSiblingだかgetNextSiblingだかってなかったっけ
605デフォルトの名無しさん:2009/08/04(火) 13:09:10
>>604
それはHTMLDOMNodeにしかなく、これを返す検索系ファンクションが無さそうでしたが
foreachの力業で何とかしました
多少ダサいですが要求仕様は満たせたのでよしです
ありがとうございました
606tor1.digineo.de:2009/08/17(月) 17:46:59
Q. 自動保守#K9K?_D[L とは一体何なのか?
A. 外部サイトへの突撃大好きな真性厨房

韓国突撃でお馴染みの自動保守
最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々
だがそんな彼にも、人間らしい部分はあったのだ…

名言集
『アパッチ砲はワシが作った』
『お前が規制系キャップ取れるか審査してやるよ』
『いつもサボってばかりのキャップがウゼえ』
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
『俺の経歴カックイイだろ?』

最近のニュース
 8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた
 本人は体調不良と言っているが…


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
607hasegawa1.isl.titech.ac.jp :2009/09/01(火) 13:04:27
Visual C++ 2005、IE7でBHO作成していますがIEのサイズ変更はどのように
検知すれば良いでしょうか?色々と試していますが
1)親をTabウィンドウとしていますがWM_SIZEメッセージ受け取れず
2)IWebBrowser2へのシンク→DocumentCompleteは拾えるがWindowResizeは反応無し
3)HTMLElementEvents2のシンク→OnClick等は拾えるがOnResizeは反応無し
上記1〜3でできるはず、もしくは他の方法でもご存じの方お願いします。
608EM114-48-209-70.pool.e-mobile.ne.jp 607:2009/09/02(水) 04:07:20
自己レスです。
他の良い方法もありそうですがメッセージフックで解決できました。
609デフォルトの名無しさん:2009/09/06(日) 20:35:51
自分がいくつめのタブか調べる方法は?
自タブをアクティブにする方法は?
610デフォルトの名無しさん:2009/09/08(火) 03:24:09
>>589
ctrl+nはexecwb olecmdid_new?
611デフォルトの名無しさん:2009/09/10(木) 18:21:32
お邪魔します。
特定のXHRによる通信をホストかBHOで捕まえて
リクエストヘッダやコンテンツを書き換える方法をご存知の方おられませんか?
612デフォルトの名無しさん:2009/09/18(金) 00:09:57
ページ読み込み後、javascriptでページの描画が行われるページを、Excel VBAで
RedyStateがCompleteしたり、BusyがFalseした後に印刷しましたが、描画が完了しないものを印刷してしまいます。
javascriptの完了をどのように認識したらいいでしょうか?

たとえば、https://www.creditportal.ratingsdirect.com/spd/Login.doのようなページで教えていただけると幸いです
613デフォルトの名無しさん:2009/09/18(金) 01:00:31
やっとIEコンポーネント+VC++で2ch書き込みが出来ました。
C++でCOMコンポーネントを使うのは鬼のように難しいですね。
614デフォルトの名無しさん:2009/09/18(金) 08:06:00
ATL使ったのかな?
C++Builderなら労力はVC++の1/20くらいになる。
マイナーだけど・・・
615デフォルトの名無しさん:2009/09/19(土) 01:15:46
MFCだけど。
IHTMLDocument2のインターフェースを取得してから、2ch書き込みフォームのMESSAGEやFROMを更新するまでの
道のりが長いのに驚いた。
IHTMLDocument2→IHTMLElementCollection→IDispatch→IHTMLFormElement→
てな感じでインターフェースを取得して、渡り歩かないといけない。
VBならIE.Document.Form(0).Item("MESSAGE").value="テスト"と、ダイレクトにアクセスできるのに。
616デフォルトの名無しさん:2009/09/19(土) 01:27:15
#importのほうでやれば、VB並に1行で書けるよ。
617デフォルトの名無しさん:2009/09/19(土) 02:24:54
どうやってやるの?
618デフォルトの名無しさん:2009/09/24(木) 19:59:50
ChromeFrame適用しても、とりあえずIEコンポーネントブラウザは動くみたいね。
619デフォルトの名無しさん:2009/09/27(日) 13:39:36
<input type="file"

これに参照ボタンを押さないで入力する方法はないのでしょうか?
信頼済みサイトに登録すれば大丈夫と思ったのですが、できません。
620デフォルトの名無しさん:2009/09/27(日) 14:52:23
ie7かそれ以前に戻す
621デフォルトの名無しさん:2009/09/27(日) 17:38:14
入力する方法はある。
622デフォルトの名無しさん:2009/09/28(月) 01:47:42
c#のWebBrowserコントロールからinput type="file" に
ファイルパスを書き込もうとしています。
下記のようなコードを書いているのですが、どうもうまく書き込まれません。
解決法がありましたらご教授ください。

webBrowser.Document.All.GetElementsByName("fileUp")[0].Focus();
SendKeys.SendWait(filePath);
623デフォルトの名無しさん:2009/09/28(月) 15:51:46
自分で答え書いてて分んないのかなぁ
参照ボタンを押す
624デフォルトの名無しさん:2009/09/28(月) 16:03:32
SendKeys.Send(filePath);
webBrowser.Document.All.GetElementsByName("fileUp")[0].click();
625デフォルトの名無しさん:2009/10/05(月) 14:41:42
漏れの場合#importの方でやらないとIEを管理者権限で起動しないとnavigateがうまくいかないわ・・
626デフォルトの名無しさん:2009/10/14(水) 21:29:13
ie出人のことか?捜索して見つければよいではないか?
627デフォルトの名無しさん:2009/10/19(月) 16:29:40
iくe不明者だろ?
628デフォルトの名無しさん:2010/03/06(土) 06:09:37
IEコンポーネント、むずかしー><
どこかにいい本ないかな・・・。

CHtmlViewで
1.選択して右クリックしたときにメニューに独自処理を追加。(コピー、すべて選択、は残して)
2.リンクにカーソルを合わせたときにバルーンを表示
というのがやりたいのですが難航中です。

1. は PreTranslateMessage() 使えば横取りできるのは分かったのだけど
そこからサパーリ。

2.は前スレの>>400-418に CToolTipCtrl を使えば、とあるのですが単独の出し方が分からない・・・。
IEコンポーネントを使い倒すスレ
http://pc5.2ch.net/tech/kako/982/982930049.html

Janeのソース(Pascal)も見てみたのですが独自にWindowを作ってるような感じでした。
629デフォルトの名無しさん:2010/03/06(土) 08:55:02
JaneってDoeでIEコンポじゃないだろ
630デフォルトの名無しさん:2010/03/14(日) 21:55:41
navigate(,,tagetframename)が効かない?
631デフォルトの名無しさん:2010/04/06(火) 00:54:27
IInternetProtocol::Start()でパケットをフックしてるんだけど
>>450を参考にして
IWindowForBindingUIでウィンドウハンドルを取得して
呼び出し元を判断しようとしてるんだけど

ウィンドウハンドルが取れない場合があるのは(画像とかCSS)
IE8のせい?
632デフォルトの名無しさん:2010/04/25(日) 08:59:37
visible=falseのIEでtarget=_blankのリンクをクリックすると
visible=trueのIEが開いてしまうのですが、これを非表示で開くにはどうしたらいいでしょうか?
開いてからvisible=falseを設定しても一瞬ウィンドウが見えて気持ち悪いので。。
633デフォルトの名無しさん:2010/04/25(日) 15:58:59
タブで開けば
634デフォルトの名無しさん:2010/04/25(日) 16:08:14
非表示のものをどうやってクリックしているのだろう
635デフォルトの名無しさん:2010/04/25(日) 16:13:12
.click()だろ
636デフォルトの名無しさん:2010/05/10(月) 01:55:48
htmlからmsgbox出してたらie.quitできないの?
637デフォルトの名無しさん:2010/05/11(火) 22:19:55
638デフォルトの名無しさん:2010/06/01(火) 23:35:40
1 :名無しさん@どっと混む[]:2009/12/14(月) 20:45:15 ID:unnBMLw10
高根社長のSM趣味サイトMaskRと
副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが
高根社長の本業コムラッドについても語ろう

銀座プレジス
http://www.prezis.jp/top.htm

MaskR
http://maskr.com/

【腹黒樹里高根】銀座プレジス3【客の情報開示】
http://set.bbspink.com/test/read.cgi/sm/1273492895/

【腹黒樹里】プレジスを語ろう2【周年イベント大失敗】
http://set.bbspink.com/test/read.cgi/sm/1262702507/

プレジスを語ろう
http://set.bbspink.com/test/read.cgi/sm/1246009466/

動画配信専門リアルミストレスってどうよ?
http://set.bbspink.com/test/read.cgi/sm/1249183350/

9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O
高値はもう大麻やめたの?

10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O
タカネ社長ってどうやってばれないように脱税してんだろ?
億単位で脱税して億ション暮らしなんて凄いよな
監査役の奥さんもグルなのか?
639デフォルトの名無しさん:2010/06/01(火) 23:36:22
18 :名無しさん@どっと混む:2010/01/07(木) 09:26:06 ID:5NL2jyJpO
高根はMASKRでレイプ仲間募集するのやめたんだね
mixiで募集中か

21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO
風俗店やってるってことは高根社長は暴力団と繋がってるんだね
どこの組にいくらみかじめ料払ってるんだかw

23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O
タカネ社長未成年に酒飲ませてレイプ

24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO
高根社長のレイプ趣味は病気だから治らない

25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO
前科者

26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0
>>25
容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害?

28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO
どこかのスレで人を死に追いやったと書いてあった

33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0
金がないって脱税がばれて追徴課税でも来たか?
せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw

38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO
首吊り首絞めプレイ大好き高根英哉
640デフォルトの名無しさん:2010/06/01(火) 23:37:08
53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0
>>18
高根英哉blogでレイプ仲間募集中

私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
    ・SMを実践している、または興味がある
    ・マスクを用意できる
    ・都内でイベント参加できる
    ・イベント内容およびこの仲間を通じて知りえた情報を口外しない
    ・成人男子である
    ・携帯電話および携帯メールアドレスを私に公開できる
    ・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
[email protected]
[email protected]
[email protected]
641デフォルトの名無しさん:2010/06/01(火) 23:37:21
コピペ君王に俺はなる、まで読んだ。
642デフォルトの名無しさん:2010/06/27(日) 05:24:11
IEコンポーネントを使ってIE以外のブラウザを操作できないのでしょうか?
643デフォルトの名無しさん:2010/06/28(月) 13:08:47
>>642しねよクソ虫
644デフォルトの名無しさん:2010/07/01(木) 17:35:58
>>642
IEコンポーネントさえあれば何でも操作できます
実はDBやレジストリ、ファイル操作もできます
645デフォルトの名無しさん:2010/09/12(日) 01:09:52
CHtmlViewを使用して表示した画像をファイルに保存するにはどうすればいいでしょうか?
646デフォルトの名無しさん:2010/10/01(金) 22:43:26
<a href="hoge" onclick="foo();" id="id">bar</a>
ってあったとき<a>のonclick属性の文字列(foo();)を取得するにはどうすればよいのでしょうか?
<a>のhref属性の文字列は
MSHTML::IHTMLElementPtr elem = document->getElementsById("id");
elem->getAttribute(L"href", 0).bstrValr; // -> hoge
で取れるのですが、onclick は ↑のL"href"をL"onclick"にしても取れませんでした
647デフォルトの名無しさん:2010/10/01(金) 22:52:15
elem->onclick;
648デフォルトの名無しさん:2010/10/01(金) 23:04:51
>>647
ありがとうございます!
_variant_t var(elem->onclick);
としてみると、var は VT_DISPATCH で文字列ではないようなのです...
649デフォルトの名無しさん:2010/12/19(日) 14:03:03
>>642
Sleipnirなら操作できるのでは?
自分は嫌いだから使わないけど。
650デフォルトの名無しさん:2011/01/21(金) 16:15:02
CHtmlViewに
about:blank → IHTMLDocument2::write
で書き込んだ文字列の「検索」機能(Ctrl+F)についてなのですが

今までIE6・IE7を使ってるPC環境だと問題なく使えていたのに
IE8のPC環境では、文字を検索しても全くヒットしなくなりました。
(何でも「一致する項目はありませんでした」となる)

この事象の解決方法が分かる方は、いらっしゃいますでしょうか?

ちなみに開発環境は
VC++2005 Standard
Windows7
です。
651デフォルトの名無しさん:2011/01/21(金) 19:40:14
closeしてないとか
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);
で確認するとスクリプトが空なんです。
もうなにがなんだかさっぱりな状態です