[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 02/17 11:13 / Filesize : 145 KB / Number-of Response : 555
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2006/04/16(日) 21:08:42 ]
=====================================

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

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


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

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

(以上、前スレより)

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

かなり前のスレですが続編を立てました。

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 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 09:11:01 ]
学校によるんじゃない?


203 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 11:50:20 ]
卒論wardファイルw

204 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 11:53:39 ]
スクリーンショットがDonut RAPTっぽく見えるんだが

205 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 15:01:08 ]
読んでしまった
しかしながら現状としては@AB個々のプログラムの方向性は出来上がってきたものの、
個々を関連付けるプログラムの作成には至っておらず、前述されている「タブブラウザ」への
組み込み、動作テスト等もまだ出来ていない状態である。最終的には独立したプログラムと
して完成させ、デスクトップ上で起動できる状態を目指していく状態にある。

何もしてねーwwwwww

206 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:14:04 ]
PCに縁遠い年寄り教授をだまくらかすにはこれで十分なんだろ

207 名前:デフォルトの名無しさん [2007/01/22(月) 00:27:18 ]
とってもw ard!

既に社会人で業務としての資料作りも慣れてる俺が言うのもなんだが、
内緒だけどあの程度プレゼン資料なら、前日の夕方から慌てて徹夜でデッチあげたりしてる。


208 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 02:13:40 ]
今日からここは自分の卒論を晒すスレになりました

最初のかたどうぞ



214 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 02:56:21 ]
freenetみたいだけど2chネラー向きのファイル共有ソフトの提案

215 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 04:17:50 ]
タイーホw

216 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 04:19:11 ]
IEコンポーネントの使い方をやさしく指導してくれるサイトや本ってあります?

217 名前:デフォルトの名無しさん [2007/01/22(月) 08:23:35 ]
以下のテンプレに従って質問してください。

【性別】 男/女
【年齢】 実年齢
【居住地】 現在住んでいる所を行政区程度まで
【職業】 ありのままに
【身長】 cm表記で
【体重】 kg表記で正直に
【スリーサイズ】 バスト・ウエスト・ヒップをcm表記で。
【画像URL】 全身ならびに顔写真を100万画素クラスで。
【メールアドレス】 携帯電話もしくは、プロバイダ等のアドレスを。


218 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:01:54 ]
相当偏差値低いらしい阪南大学。
学生の質が垣間見えた。



219 名前:デフォルトの名無しさん [2007/01/25(木) 02:20:31 ]
はいはい、次の卒論どうぞ。

220 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 18:55:29 ]
IHTMLWindow2::execScript で外部からjavascriptを実行できることは
わかったのですが、オブジェクト型を引数にとるjavascript関数に
引数を渡して実行することは不可能なのでしょうか
(例えばVCから IUnknown* の情報を渡したいとか)。

221 名前:デフォルトの名無しさん [2007/01/26(金) 20:40:08 ]
>>199
今更だけどなんか見つけたよ。
isawseashell.blogspot.com/2007/01/via-proxy.html


222 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 14:05:15 ]
スクリプトエラーのダイアログを非表示にしたいのですが、

Sleipnirのこれ
www.sleipnir-wiki.jp/original_index.php?FAQ#rbe2449f
はどういう実装になっているのでしょうか?

235 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 19:36:43 ]
IOleCommandTarget::ExecでOLECMDID_SHOWSCRIPTERRORを握りつぶす

Sleipnirの実装は知らんが、DonutRAPTのソースを落としてきて
AtlhostEx.h,ScriptErrorCommandTargetImpl.h,DialogKiller.h辺りを眺めてみればいいと思う。
対象言語がC++以外の場合は知らん。

236 名前:234 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 06:03:52 ]
プロセスもういっこ作ってそこで制御



239 名前:237 mailto:sage [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

240 名前:IE7入手先 mailto:hage [2007/03/17(土) 16:46:25 ]

MSN版IE7
promotion.msn.co.jp/ie7/
download.msn.co.jp/download.aspx/sid=I7bzPs2A/ie7setup.exe

Yahoo版IE7
recommend.yahoo.co.jp/ie7/campaign/index.html
recommend.yahoo.co.jp/ie7/index.html
a109.g.akamai.net/7/109/31749/000/downloads.yahoo.co.jp/browser/ie/7/IE7Setup.exe

Google版IE7
www.google.com/toolbar/ie7/intl/ja/
dl.google.com/toolbar/data/ie7/IE7Setup_G_JP.exe



241 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:04:58 ]
テレビ番組の番組表なんですけど
その日によってURLが変わるんですけど
これをお気に入りにできませんか?

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

ローカルHTMLを経由してやるのは簡単ですが
ちょっと醜いやり方のような・・・

242 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 02:13:04 ]
IEコンポーネントに関係あるかなぁそれ。
日付に合わせてURLを作成して移動するbookmarklet作ればいいんでない?


243 名前:241 mailto:sage [2007/03/25(日) 09:45:27 ]
THX!
javascript:ってやつですね?

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

ちなみにここってBHOとかは作らないんですか?
どうもありがとうございました。

244 名前:243 mailto:sage [2007/03/31(土) 00:23:07 ]
ええともはやスレ違いなので質問という訳ではなく
独り言なのですが・・・

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

というかこういうのってどのスレに行けばいいのだろうか?
WSHでもHTAでもHTMLでもないし・・・

245 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 00:28:43 ]
>>244
Web制作板だっけ? そんな板があったハズ。

246 名前:244 mailto:sage [2007/03/31(土) 16:48:21 ]
すいません・・・何度も・・・
以前にもWeb制作板内を探したんですが
やはりWebサイトを作る、という方向性で
IE依存のスクリプトやIE固有の機能に関しては
あまり積極的ではないような・・・?
スクリプトの場合、こことかはいいのかな、とも思うんですが・・・
ttp://pc11.2ch.net/test/read.cgi/hp/1070611524/
どうも度々すみませんでした

247 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:00:14 ]
他と全く同じようにしてムリならばムリなんだろう



249 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 18:34:24 ]
選択範囲の座標を得る方法を教えて下さい。
IHTMLTxtRange 辺りかな?と思ったのですが、分かりませんでした。

250 名前:デフォルトの名無しさん [2007/04/18(水) 22:08:02 ]
このスレってまだ生きていますよね。
IEコンポ使ってhtmlの表示を行っている途中で
ある特定の<img src="xxx">が出現したら、その画像を置き換えたいのですが
やり方がどうもわかりません。
htmlを書き換えて一時ファイルを作成してとかではなく、メモリストリームとかで処理したいのですが
ヒントとか、解説があるサイトとかあれば教えてください。


251 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:17:48 ]
tvde.web.infoseek.co.jp/cgi-bin/jlab-dat/s/23689.jpg

やだやだ…そんなところ舐めないでよぉ

252 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 05:58:23 ]
>>250
馬鹿のスクリプト厨で当然.NETもよく知らない俺ですが
ActiveXならbody.onloadのタイミングとかで
document.imagesを調べる、というのでは駄目でしょうか?

253 名前:デフォルトの名無しさん mailto:sage [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

で、できました。スクリプトの場合と殆ど同じですね

254 名前:249 mailto:sage [2007/04/20(金) 08:23:56 ]
>253
どうもありがとうございます。
ただ、IHTMLTxtRange::get_textって、選択された文字列そのものですよね?
あいうえお
 ~~~~~~
  ↑ここが選択されている場合、「いうえ」が納まっている。

私が欲しいのは文字列そのものではなく、その選択されている範囲座標なんです。
例えば、xy座標で、左上が10:10、右下が20:60 みたいな。
要は、マウスでクリックした座標が、選択範囲内か、そこから外れた位置なのか?
を知りたいわけです。

255 名前:253 mailto:sage [2007/04/20(金) 21:54:40 ]
>>254
おおこれは大変勘違いしました。お恥ずかしい・・・
どうも申し訳ございません。忘れてください・・・

256 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 14:59:24 ]
選択されていれば範囲内
選択されていなければ範囲外

257 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:41:12 ]
IHTMLDocumentから何とかIWebBrowserを取得する事ってできないですかね?

258 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:25:34 ]
「IHTMLDocument2からIWebBrowser2を取得する」なら
「ウインドウハンドルからIWebBrowser2を取得したい」で
ぐぐって出てくるコードに該当個所がある。



259 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 16:36:45 ]
250とかぶるけど、特定のURLへのリクエストを別のURLにリダイレクトしたい。
Navigate()再発行とかするとimg srcでうまくいかないからダメ。
OnBeforeNavigate2とかのタイミングで、URLをコッソリ書き換えることが出来ればいいんだが。

IInternetProtocolImplとかそのあたりを実装するんじゃまいかと思ってるんだが、誰か知らない?

260 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 18:45:00 ]
知らんけどイベントハンドラ実装した?

261 名前:259 mailto:sage [2007/05/17(木) 18:56:01 ]
>>260
OnBeforeNavigateイベントでURLを取得は出来るが、LPCTSTRなので書き換えは出来ない。

たぶんイベントじゃないと思うんだよね。PassthroughAPPとかそのあたりのヨカン。
ドキュメントが少なすぎてわからん。

262 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 20:24:06 ]
OnBeforeNavigateでキャンセルしてNavigateじゃだめなん?

263 名前:259 mailto:sage [2007/05/18(金) 11:49:16 ]
>>262

それだと<img src=""> のときに画像表示がキャンセルされてページが遷移しちゃうからダメ。

264 名前:259 mailto:sage [2007/05/18(金) 12:10:07 ]
説明が足りないみたいなのでもう一回。

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

プロセス外に影響がないようにしたいので、etc/hosts をいじるとかはしたくない。


265 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:31:59 ]
オミトロンを使えばいいような気がする

266 名前:259 mailto:sage [2007/05/18(金) 18:37:59 ]
>> 265
あーほんとだー できそうだー

267 名前: ◆PAa2MRiwDQ mailto:sage [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 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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( "www.google.com/" ), flags( 0 ), target( "" ), post( "" ), headers( "" );
iweb->Navigate2( &url, &flags, &target, &post, &headers );
エラー処理は省略してますがこんな感じです。
何か処理が足りて無いのだと思うのですが、よろしく願いします。

270 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:29:56 ]
>>269
Vistaを使ってないのでわからないですが、
Vistaでは他のゾーンにジャンプする場合
必ず他ウィンドウで開く仕様なんじゃないですか?

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

くだらないやり方ですがiexplore.exeにURLを指定して起動すれば
ゾーン間ジャンプを避けられるんじゃないでしょうか?
それで後からShell.ApplictionでIWebBrowserを探して取得する、とか。

271 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:39:30 ]
>>267
私はATLもMFCも知らないのでよくわかりませんが、
Invokeが呼び出されない、というからには
IDispatchが使われてないんでしょう。
IDispatch継承のカスタムインターフェースを実装したオブジェクトの場合
IDispatchが呼び出されるかカスタム部分が呼び出されるかは
場合によって異なります。
スクリプト言語やVBでレイトバインディングを使うと
IDispatchが呼び出されますが
それ以外の多くの場合にはカスタム部分が呼び出され、
IDispatchは無視されるはずです。

272 名前:VC-- [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 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:56:19 ]
レジストリでも検索してみたら?

276 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:40:42 ]
regmonでみれば?

277 名前:デフォルトの名無しさん [2007/08/15(水) 11:42:40 ]
もうどうしても解決できなかったので質問させてください。
downloadcompleteイベントだけがどうしても発生しません。

環境 EXCEL2003sp2 VBA XPSP2 ブラウザ6.0

navigatecomplete2,documentcompleteは発生します。ただrefreshをさせたときは動作しない、(上のほうのレスにもあります)ので
downloadcompleteを使いたいのです。
一番近い私と同じ症状を下記ページで見つけました
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 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:28:34 ]
すでに開いているIEのセッションからクッキーを取り出し、
IEコンポーネントを利用した自アプリでそのクッキーの情報を使う、
みたいなことは可能でしょうか?
あるいは単純に既存のIEと自アプリとでセッションを共有できればいいのですが、
レジストリでBrowseNewProcessというキーをNoにすることで全てのIEが
同一のプロセスで起動されるという情報がMSサイトにありましたが、
どうも効果がないようなんです。



279 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 22:20:26 ]
IEコンポーネントで自分のuseragentを取得するのはどうやるんだぜ?
JavaScriptsだとnavigator.userAgentだと思うがVC++のやりかたわからんのだぜ


280 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 02:16:36 ]
UrlMkGetSessionOption

281 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:27:24 ]
>>280
d

282 名前:デフォルトの名無しさん mailto:age [2007/08/23(木) 22:03:01 ]
IWebBrowser2::GetLocationURLでIEで表示されいてるURLを取得したのですが、IE7などのタブで現在表示されているかいないかの判定方法があれば教えて下さい。

283 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:01:34 ]
自己怪血。ググッて>>282にヒットしたヤシはここ嫁
www.codeproject.com/shell/AutomateShellWindow.asp

284 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 20:24:40 ]
IEコンポを使った専用ブラウザを作ったのだけど、
ツール>インターネットオプション>セキュリティ>レベルのカスタマイズ
その他>混在したコンテンツを表示する
をOFFにしたいんだけど、どのInterfaceから操作できるんでしょうか?

285 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 02:58:47 ]
>>128
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 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 13:26:08 ]
ie6までは、貼り付けたieコンポーネント内のリンクを
ユーザーが Enterキーで開くことが出来たのですが、

ie7から、開くことが出来なくなりました
キー操作でリンクを開く方法って、ないでしょうか???

287 名前:デフォルトの名無しさん [2007/09/26(水) 13:40:19 ]
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 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:55:53 ]
>>287
俺がやったらうまくいったよ。
そのページを書いた人もおそらくうまくいっただろうし、
お前のプログラムに何か問題があるんだと思う。

何か変にいじっていない?



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

それか俺のHTMLの方のソースに問題があるのかな・・・
そっちの線はうすいと思うけど・・・

290 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:00:22 ]
>>289
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 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 15:21:53 ]
>>291
ん〜どうやら
pElement->put_innerHTML( L"hogehoge");
の文でデバッガが立ち上がって落ちます。
<body>タグの間に

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

って書いてるのですが、もしかして根本的に何か違いますかコレ

293 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 18:49:56 ]
と、思ったら、ビルドをdebugからreleaseに変えたら無事動作しましたm(_ _)m

294 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 05:36:23 ]
IEコンポーネントを利用してWin32で作成したウィンドウ内にHTMLを表示させているのですが、
表示させているHTML内のJavaScriptから、アプリケーション側の関数を実行する事は可能でしょうか?

295 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:35:21 ]
ウイルスでも仕込むつもり?


296 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 21:58:22 ]
>>295
いえ、ただJavaScriptで出来ない処理をアプリケーションに任せようと思って・・・。
逆は出来るんですけど、JavaScript側からアプリケーションの関数の実行は出来ないのでしょうか?

297 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 22:15:41 ]
>>296
できるよ。externalで実装する。説明はめんどくさいからしないけど、
需要がある話なのでMSDNとかに載ってるんじゃないかなあ。

298 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 22:19:42 ]
>>297
externalですか。ちょっとググってみます。
なんか1から丁寧に解説してくれてるサイトがあればいいのですが、
なかなかそういうのが見つからなくて結構困ってます。
VisualStudioの構造体の中身が勝手に表示される機能をつかって、
メソッド名から機能を予測して色々試してみる方法には限界が・・・



299 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 22:28:05 ]
今アプリケーション側からJavaScriptの関数の実行はURLにjavascript:関数();でやってるのですが、
external使うともう少しちゃんとした方法で出来そうな感じですね。ただ使い方がさっぱりですが。

300 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 22:31:35 ]
>>299
おまえ>>287だろ。マルチ野郎は氏ね。

301 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 23:20:22 ]
WebBrowser1と2じゃまた違うっぽいですね。1ならいっぱい転がってるのに。。。
C#とVBばかりでなかなか読めないけど・・・

302 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:01:28 ]
>>301
WebBroser1と2?なんか勘違いしてる気がするなあ。

externalはキーワードとしてちょっと曖昧だったかも。GetExternalで再度。
DonutRAPTとかでも実装してた気がするから、見ようと思えば見れると思う。
COMだから、C#/VB.NETよりC++のほうが普通に楽ですよ。

303 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 21:13:59 ]
>>301
GetExternalだともっと情報が少なくなってますね・・・。
色々見てるとInvoke()とかInvokeScript()あたりが臭そうなのですが、
引数が多い上に、それぞれの引数が何を意味しているのか分からないので全く使えないのが現状です。

304 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 03:06:13 ]
IDocHostUIHandlerインターフェース実装してGetExternalでIDispatchインターフェース実装したクラスのポインタ食わせてやればいけるはずだったと思うが。

305 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 11:30:43 ]
NavigateComplete2とか待たないといけないんじゃね

307 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 12:38:17 ]
>>306
それをキーワードに検索するといい感じのがヒットしたので使ってみました。
以下のコードをNavigate2の後に入れたのですが無限ループになってしまいますね。

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

なんか全然COMを理解してないような気がするのですが、少しソースを見ていただけないでしょうか?
ossan.fam.cx/up/uploda1/loda.cgi?mode=dl&file=441
パスはieです。

308 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 15:01:57 ]
>>307
こいつはマルチ野郎なので以後放置で



309 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 20:24:04 ]
IEコンポーネントなんだけど、そのプロセスでだけキャッシュの保存先を
変更ってできる?

310 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 21:23:06 ]
>>307
当たり前じゃん。


311 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 23:00:51 ]
ゲッラゲラ笑った

C++系以外の言語から移植して気付いてないとかか?

312 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 23:06:26 ]
Returns S_OK if successful, or an error value otherwise.



313 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 10:48:14 ]
COMどころかスレッドも理解してないじゃん

316 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 02:45:43 ]
javascript:test();に問題があるかも

317 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 10:14:14 ]
結局どうすれば解決できるのでしょうか?

318 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 10:27:56 ]
はい



319 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 13:53:42 ]
>>317
こいつは自分で考える気が微塵もないクソ野郎です。以下放置で。

320 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 00:33:58 ]
>>319
なんでそんなに執拗にからんでくるんですか?
ちゃんと考えてるし、色々努力してます。どうやら才能がないらしいですが。。。

321 名前:デフォルトの名無しさん [2007/10/18(木) 05:17:57 ]
質問です。
クッキーによるセッション管理をしてるサイトなのですが
途中まで、WebRequestクラスでログイン処理などをした後
その情報を使って、WebBrowserコンポーネントでそのサイトにアクセスしたいのです。
そこでクッキーを引き継がせる方法を考えたのですが
WebRequest側は、CookieContainerでクッキーを保持してるのですが
IEコンポネ側に対応したプロパティーが見当たりません。

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

環境はC♯です。

322 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 12:55:03 ]
いい方法はあります。

323 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 03:46:31 ]
なんか、変な流れになっちまったな。
変な応答してるヤツは何がしたいんだ?

>>321
手軽な方法としては、一度、
WebBrowserのdocumentプロパティを
mshtml.IHTMLDocument2にキャストして
writeの中に、WebRequestクラスで受信したデータを放り込めば
クッキー情報含めて引き継がれるよん。


324 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 04:23:16 ]
>>323
出来ない。
APIのInternetSetCookie で設定する。


325 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:09:00 ]
C++ MFC で、HEADメソッドを手軽に送信できるような関数ないかな
いちいち
HEAD hoge.fuge.com HTTP/1.1
とか書きたくないんだぜ

326 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 04:41:11 ]
つくればいいじゃない

327 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 19:01:07 ]
Temporary Internet Files の保存先を任意のフォルダに変更したいんだけど
どこいじればいい?
同時に立ち上がってるほかのプロセスに影響なく、特定のIWebBrowserのインスタンスだけ
変更できるとうれしいんだけど。

328 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:00:06 ]
普通に無理だろ常識的に考えて



329 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:41:56 ]
IEコンポーネントを使わなければおk

330 名前:327 mailto:sage [2007/11/08(木) 11:06:15 ]
>>328
そうかな。。。出来ても良さそうなもんだけどなあ。。

331 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 19:51:17 ]
IEの関数コールを監視して、どこでフォルダアクセスしてるか見れば?
最悪その関数をそのプロセスに対して差し替えて実現。

332 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:47:34 ]
関数とかAPIとかのレベルじゃなくね?


333 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:51:06 ]
フック。

334 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:26:31 ]
定番の質問だが
・IEのクリック音を止めたい
・Temporary Internet Filesの位置を変えたい
・Proxyを追加したい。
この辺の事は、コンポネには装備されてなくて
IE自体も、直接レジストリを操作してるから
どうしてもやりたいなら、該当するレジストリの箇所を書き換えるしかない。


335 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 04:33:33 ]
レジストリを書き替えたら当然純正IEにも影響が出ることをお忘れなく

336 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 04:59:44 ]
if( strcmp(id, "foo") == 0 ){
pElement->put_innerHTML(A2OLE(boo));
}

こんな感じでidがfooである領域を書き換える事は可能だけど、
この領域に文字列を単純に追加する事って出来る?
今のところfoo内を読み込んで、strcatで文字を追加した後put_innerHTMLでやってるんだけど、
これじゃ二度手間な気がするんだが。。。

337 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 18:39:20 ]
あるツールの開発でIEコンポーネントを使うか否かを検討しています。
例えば、IEコンポーネントを用いたミニブラウザの場合、複数起動しても、
それぞれが独立したcookie情報を用いることは可能でしょうか。



338 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:34:07 ]
独立したCookieってどういうこと?
つかIE複数立ち上げて見ればわかるんじゃね



339 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:54:19 ]
>>337
ブラウザが起動してる限り有効なクッキーの話だよね?
>>338がいうようにIE複数起動したときの動作がそのままIEコンポアプリ複数起動だとおもう。
たぶんクッキーは別になるんじゃないかな。

340 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:10:30 ]
ちょっと質問が分かりにくかったようで、すみません。
例えば、mixiなどのオートログインが可能なサービスの場合、Cookie情報で
これを実現しています。ブラウザを複数起動しても、そのCookie情報が当然、
同じものがサーバーに送られます。(でないと、オートログインできません)

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

で、IEの標準の動作では、複数起動しても、Cookieは共有というか共通になって
しまうんですが、IEコンポーネントの使い方次第で、Cookieをブラウザとは
別のものとして管理できるのかを知りたかったのですが、可能でしょうか。

341 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:18:49 ]
Cookie自体はIEとの共有は避けられないと思った。
ただ、プロセス毎にCookieを利用しないようには出来るから、そのツール側で扱う情報を
Cookie以外の手法でなんとかするのがいいんじゃないの?

342 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:47:10 ]
BeforeNavigate2でヘッダ弄ればなんとでもなるんじゃね?

343 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:06:51 ]
返答ありがとうございました。
実験してみます。
感謝です

344 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 05:40:24 ]
delphi7proでTwebbrowserを使って
チェックボックスやボタンを自動でクリックしたりするのをするようなソフトを作っています
そこで
e := WebBrowser1.OLEObject.Document.documentElement.getElementsByName('なまえ');
としているのですがオートメーションオブジェクトでサポートしていませんというエラーが出てしまいます
このエラーはどのような意味なのでしょうか

345 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 05:41:56 ]
調べましたが、とっかかりさえ見つからないような状況ですので
わかる方がいらっしゃったら教えてください

346 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:07:04 ]
getElementsByNameメソッドがあるのはDocumentだけだからじゃね?
"documentElement"が余計なんじゃね

347 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 20:21:41 ]
ありがとうございます
e := WebBrowser1.OLEObject.Document.getElementsByName('なまえ');
e.Item(0).click();
のような感じで自動クリックできました

348 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 02:20:50 ]
IEコンポーネントでは、HTMLをサイトから読み込んだあと、<IMG>や<IFRAME>内のCGやHTMLを
自動的にサーバーにアクセスして取得しますが、BeforeNavigate2のように、それらのデータを
取得しにいく前にイベントとして拾う方法がありましたら、教えてください。

また、redirectで別サイトにgetを送信する前に、それをイベントとして取得する方法があり
ましたら、これについてもお願いします。



349 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 04:28:54 ]
自分でイベント作ったら?

350 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 16:40:32 ]
>>349
そこまでの自由度あるの?

351 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:21:37 ]
>>348 Proxy

352 名前:327 mailto:sage [2007/11/28(水) 10:52:27 ]
NtQueryValueKeyにフックをかけて
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache
にウソを返すようにしたんだけど、切り替わらないorz

353 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 07:17:28 ]
レジストリの値変更しても再起動するまで反映されないんだから
システムがどっかメモリ上にキャッシュしてるんだろ

354 名前:デフォルトの名無しさん [2007/12/01(土) 18:17:18 ]
VBを使用しております。
IEオブジェクトに表示中の画像ファイルを、指定のフォルダに保存するには
どのようにすればよいでしょうか?
要するに、マウスの右クリックで表示される「名前を付けて画像を保存」を自動行いたいのです。

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

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

おわかりの方がおられましたらお教えください


355 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 20:39:58 ]
SRC見てダウンロードすればいいんじゃね

356 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:12:03 ]
>>355
URLを見てDLということですか?
アクセスのたびに変わるからNGと記載したのですが・・・

357 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:58:20 ]
SRCプロパティのことじゃねーのかハゲ

358 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:40:06 ]
>>357
うーんよくわかりません。
そのSRCプロパティのURLからDLすると、画像ファイルが変更されNGなのですが?



359 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 16:48:18 ]
いみがわからない

360 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 18:18:45 ]
アクセスするたびに変わるのは、画像じゃなくてURLのほうじゃねえかw
それも変数の値が変わる程度で、呼び出し先のCGIは固定だか?

362 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 20:44:25 ]
tool-6.net/?cnum
VS2005でアセーションエラーが出まして
なぜhMyIEがNULLになるのかがわかりません。

363 名前:デフォルトの名無しさん [2007/12/04(火) 22:56:08 ]
CreateWindowの戻り値がNULLだから。

364 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 23:21:29 ]
>>361
画像のURL指定し、ブラウザで表示させ、更新してもそのたびに変わるのですが?
いったいどう固定すると、画像も固定できるのでしょうか?

365 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 01:28:41 ]
GET値に乱数を追加する

367 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:27:57 ]
>>364
画像URLは固定でリロードするたびに画像の内容が変わってしまうと言うことか
だからIEコンポで表示させた画像を取得したいと言うわけか
一時キャッシュ覗いて探してみるとか・・・
まぁ無理なんじゃね?

368 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:48:02 ]
>>363
解決するためにはどうすればよいですかね?



369 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 11:29:13 ]
いくら考えても解決出来ません。
お願いします。
解決方法を教えて下さい。

370 名前:デフォルトの名無しさん mailto:age [2007/12/06(木) 19:16:38 ]
www.ezinfo.jp/contents/script/src/index.php?ura=http%3A%2F%2Ftool-6.net%2F%3Fcnum&agent=DoCoMo%2F2.0+SH903iTV%28c100%3BTB%3BW30H20%29&ref=http%3A%2F%2Fwww.ezinfo.jp%2F&type=sosu
アセーションエラーが出るのは、初期化がいけないのですかね?

371 名前:デフォルトの名無しさん mailto:age [2007/12/06(木) 20:32:51 ]
うっほほほへ!??!
できた!!!
クハハハハハハwwww
やっべぇwwww何コレwwwww気付かなかった俺バカスwwwww
ありがとうございましたぁ!!
うっひょひょひょwwww

372 名前:デフォルトの名無しさん [2007/12/07(金) 19:12:42 ]
C++を使用しています。

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

原因に心あたりがある方、教えていただけませんか?

373 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:35:54 ]
>>360
1.ドキュメント全体をビットマップで保存する
2.特定画像のみビットマップで保存する
3.キャッシュから見つけだして画像を表示する
と、いろいろ試してみたが、そのページのころころ変わる画像はキャッシュされてないっぽいので、
VBでやるなら、1か2になるかなあ
本気でやるならVBじゃなくてC++にしたほうがいいかと

374 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 12:52:00 ]
同じだよ
読み込み完了後ならjavascriptのdocument.writeもページの置き換えになる
やってみろ

376 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 13:20:44 ]
ページ移動時のカチッって音を消すにはどうすればいいのでしょうか?

377 名前:374 mailto:sage [2007/12/16(日) 13:28:08 ]
>>375
うむープラガブルプロトコルとか特殊なことやって
ページ表示した後だから、うまくいかんのかなー

378 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:54:12 ]
>>376
visible = falseにしとくか
レジストリいじるかしかない



379 名前:374 mailto:sage [2007/12/16(日) 16:57:30 ]
ああああ、言っている意味を把握した。
なるほど、確かにHTML完全に読み終わった後の
javascriptのdocument.writeもページ置き換えになるね。
根本的な部分で理解が欠けていた・・・
ふむーじゃあ何とかしてDocumentCompleteさせなきゃいいのか。

380 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 17:21:29 ]
innerHTMLとかで書けばいいんでないの?

381 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 17:38:58 ]
>>378
pWB2.setVisible(FALSE);
じゃダメですか?何も変化がないのですが・・・

382 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 19:23:51 ]
>>380
いや、それだと糞重いんで、なんとかしてdocument.write使いたいなと。
iframe src="about:blank"
として、そこに書き出すことで解決!

383 名前:374 mailto:sage [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);
 }
これはサンプルのバグかな。


384 名前:374 mailto:sage [2007/12/16(日) 19:31:53 ]
SafeArrayDestoryって要素の中身もvt見て、
VT_BSTRだったら勝手にSysFreeStringをやってくれるんだろうか。
だから先にSysFreeStringしちゃうと2重Freeで落ちるのかな。

385 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 20:27:16 ]
IEコンポを使っている2ちゃんねるブラウザがその方法で追記してるから
不可能ではないはず

386 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 20:31:31 ]
セキュリティーゾーンとかでいろいろ面倒だった気はするが

387 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 23:43:52 ]
CHtmlView内で起こったスクリプトエラーをフックできないのですか?
おしえてエロい人

388 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 23:57:04 ]
>>385
よく見かけるdelphiのコードではレイトバインディングで型変換はシステム任せにして
えいやっとwriteするけれど、きっとディスパッチの手間だけ速度では損するんだろうな。



389 名前:374 mailto:sage [2007/12/17(月) 00:01:35 ]
>>385
あ、おいらへのレス?
about:blankで開いたページならdoument.writeでも切り替わらないよ。
2ちゃんブラウザはたいていabout:blankに書いてるし。
あとはjavascriptでロード時に実行されるように書くか。

390 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 12:31:40 ]
>>269
Vistaにしたら、そうなってしもうた。
>>270の方法で解決しそうだけど回りくどいな。


391 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 13:13:13 ]
>>387
できます

392 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 17:10:09 ]
>>391
いいからその方法をとっとと書けよクズが。
知っててワザとやってるなら性格悪いだけのクズだな。

393 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 18:29:35 ]
どうしよっかな〜

394 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:43:06 ]
>>392
すごい時刻ゲットしてるからって嫉妬すんなよw

395 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 20:56:43 ]
なんでこのスレには糞しかいないんだよ。
IEコンポーネント使う少ない人達同士仲良くしろよ畜生

396 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 21:09:38 ]
自分の質問の答えが返ってこない=糞
ですか。そうですか。

397 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 23:03:59 ]
>>395
自称糞じゃないお前がじゃんじゃん質問答えろ
手始に387からな、12時間まってやるから早くしろよ

398 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:51:04 ]
自分の質問の答えが返ってこない=糞だとは誰も言ってねぇだろが。
>>391さんは性格がいいですね?こうですか?わかりません><



399 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:41:02 ]
じゃあ横で俺が答えてみようか。
つーかキーワードでググったらここの>>235がヒットしたんだが。

400 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 14:50:25 ]
まぁ言ってる事に同感できなくはないが、口が悪い。
スレが荒れる。

401 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 12:36:32 ]
IEのレンダリング結果において、XY座標から、近傍のテキストを
取得するにはどうしたらいいですか?
IHTMLDocument2::elementFromPoint()
で、エレメントを取得できるのはわかったのですが、もっと 1 文字単位で
文字を検出したいのです。できたら、エレメント内あるいはドキュメント全体における
文字の位置がインデックスでわかるとうれしいです。

402 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:38:01 ]
すくなくともIHTMLDocumentやElementの何かの関数を使えば取れる、
というものではないはず。
血を吐くような努力が必要。てか事実上無理だと思う。


403 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 23:32:04 ]
工夫次第で無理ではないな。


404 名前:402 mailto:sage [2007/12/20(木) 23:32:51 ]
>>403
だったら具体的なやり方書いてよ、天才プログラマーさん。

405 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 23:36:14 ]
>>404
指定座標位置付近の文字をカーソルで選択して
その選択文字列を読み取ればいい。


406 名前:403 [2007/12/20(木) 23:50:21 ]
>>404
君はボンクラ
私は天才プログラマー
ということでいいかね。


407 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 03:13:15 ]
いいえ

408 名前:デフォルトの名無しさん [2007/12/21(金) 08:06:24 ]
deftv.atspace.com/?X&1255970&0414@TestX1TV
deftv.atspace.com/?X&1255970&0414?X&1255970&0414@TestX2TV
deftv.atspace.com/?X&1255970&0414?X&1255970&0414?X&1255970&0414@TestX3TV




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 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 08:47:06 ]
>>405
その指定座標付近の文字を選択ってのはどうやるんだ。
選択時のマウス動作をエミュレートすんのか。

411 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:28:59 ]
>>408
精神的ブラクラ

412 名前:401 mailto:sage [2007/12/21(金) 12:50:22 ]
みなさん、ありがとうございます。やっぱりちょいと難しそうですね。

413 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:07:00 ]
>>410
カーソルで選択ってものすごい基本的なWindowsAPIじゃん。ウインドウズのプログラマなら誰でも知っているだろ。
マウス動作をエミュレートって・・・アフォカ

414 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:31:56 ]
>>413
おお?それはテキスト入力にフォーカス当たった状態のこといってんの?
そうじゃなくブラウザ上のふつうのテキスト部分の話とおもったんだが。
それもできるんか。

415 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:02:58 ]
>>414
基本的なことをまったく理解していないな。ブラウザ上で普通に範囲選択してCtrl+Cあるいは、右クリックでコピーが実行できるじゃん。
それをプログラム的に実行するだけ。


416 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:05:02 ]
>>415
ぜひ、そのコードを教えてください

417 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:19:44 ]
これでWM_COPYとか言ってきたらズゴーなんだが。

418 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:05:37 ]
JavaScript技でそんなのがあったな。Selectionオブジェクトだかを作って
その占有領域の座標を取って処理するの。座標から近傍文字、の逆バージョンだけど、
ユーザーが選択操作してなくてもできてたので、この応用でなんとかならないかな?




419 名前:デフォルトの名無しさん [2007/12/21(金) 23:42:10 ]
deftv.atspace.com/?V&v1656980d4H5CXht&0256@HiSpeedVision

420 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:46:50 ]
>>415
いやだから、もっと具体的なコードかけよ、そこまでいうなら。
マウスエミュレートもプゲラって言った以上、それもしないコードだぞ?
まず選択するためには、選択始点のテキストがどの座標に存在するか取得しないといかん。
ってかこの時点でこの件は目標は達成なんだが。

421 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 10:05:19 ]
IHTMLElement から、実際の描画に使われてるフォントの種類やサイズを
調べるにはどうしたらいいですか? style とか見ても null なんですが、
他にどこを見ればよいものやら。

422 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:10:50 ]
いまだに>>378が分からないのですが・・・
pWB2->put_Visible(VARIANT_FALSE);
では音は消えませんでした。もう少し詳しく教えて頂けませんか?

423 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 16:22:27 ]
サムネイルのような画像を、そのリンク名と関連付けしてデータベース化したいと思っています。

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

直接GETする以外で何か良い方法をご存知の方、ご教示いただければと思います。

424 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 19:10:19 ]
WinInet経由でいいなら、GetUrlCacheEntryInfoでキャッシュの情報が取れる。

425 名前:423 mailto:sage [2008/01/09(水) 09:59:39 ]
>>424
これで何とかなりそうです。
すばらしい情報をありがとうございました。

426 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:43:43 ]
プロキシ設定を自分のIEコンポーネントだけ別にすることはできますか?
InternetSetOption(NULL,.... )だとシステム全体に影響が及んでしまうので、
hInternetを指定して制限をかければいいのだと思いますが
コンポーネントが利用中のhInternetを知る方法が無いので困っています

427 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:45:46 ]
>>426
私のソースにはこんなのがありました:
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, pInfo,sizeof(INTERNET_PROXY_INFO),0);

これで動いてたような気がするけど、何年も前のブツなので要検証。

428 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:01:00 ]
IEコンポーネントを表示せずに、NavigateやDownloadCompleteを使って、
データの取得を行うことは可能なのでしょうか?



429 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:27:09 ]
可能です

430 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:33:44 ]
どうも有り難うございます。
う〜ん、すると、Windowsサービス化も可能なんでしょうか?

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

Windowsサービスは作ったことないので想像もつかないのですが、
通常、UIはサービスを持てないのですよね?
デスクトップとの対話をサービスに許可、とか設定せずに、
普通のデーモン的なデータ取得を行えると、だいぶ方向性が広がるのですが。

431 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:36:02 ]
ううっ、下記の部分、逆でした。
>通常、UIはサービスを持てないのですよね?

Windowsサービスは、普通はUIを持てないのですよね。
ユーザがログインしない状況でも、IEコンポーネントでデータ取得を
行えると嬉しいのですが。

432 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:18:39 ]
それはIEコンポでなければならないのか?

433 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:07:26 ]
う〜ん、取得したDOMを操作して、色々処理するので、
結局、何らかのブラウザエンジンは必要になるのです。

まぁ、ゲッコーとかに乗り換えるっていう手はあるのでしょうが、
IEコンポーネントを頑張って使い続けるか、
オープンソースのブラウザエンジンから不要なところをばっさり切って
使うかは、今後の大きな課題にはなるのですが‥‥。


434 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:48:48 ]
>>430
そういうことは、人に聞くより自分で試したほうが早いぞ。

435 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:12:52 ]
質問があります
IEではTAB、SHIFT+TABキーでフォーカスの移動が行われますが、
これを外部から行うにはどうすればいいでしょうか
TABキーイベントを送る、というのはナシの方向で・・・

436 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:45:22 ]
SetFocus

437 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 03:11:38 ]
IEのフォーム部品はウィンドウを持ってないからSetFocusは役に立たない

438 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 04:34:22 ]
IHTMLDocument2::all、
IHTMLDocument2::activeElement、
IHTMLElement2::focus



439 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:16:18 ]
>>436-438
ありがとうございます!
試してみます!

ダイアログのように一発でやる方法があるかとさがしておりました!

442 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:30:21 ]
"DOCHOSTUIFLAG_NO3DOUTERBORDER" が定義されていない…

mshtmhst.h内で定義されてるはずのものなのか、それ以外のどこかなのかは
判らんが、とにかく無い。

443 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:47:47 ]
うちのMsHtmHst.hタンには定義されてるよ

444 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:49:20 ]
よし、Platform SDK落として、中のmshtmhst.hをMinGWのincludeに突っ込んだら出来た。

445 名前:デフォルトの名無しさん [2008/01/23(水) 23:59:25 ]
すみません教えてください
取得したpElementがインラインフレームか
普通のフレームかを判定したいのですが
良い方法はあります?


446 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:28:36 ]
tagName見るなりIHTMLIFrameElement取得してみるなりでいいんじゃね

447 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:07:54 ]
>>446
ありがとうございます
これをヒントに調べてみます

448 名前:デフォルトの名無しさん [2008/01/31(木) 10:55:56 ]
ho



449 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:00:15 ]
IInternetProtocol::Start()でゴニョゴニョするコードを書いているんだが、
呼び出し元のIWebBrowser2を取得することって出来ないのかな。
複数ウィンドウのブラウザで、IWebBrowser2が複数存在しているので、
グローバル変数では解決出来ない。
スレッドが分かれているわけでもないのでTLSでも解決できない。

450 名前:デフォルトの名無しさん mailto:sage [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

453 名前:451 mailto:sage [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 名前:デフォルトの名無しさん mailto:age [2008/02/10(日) 00:54:23 ]
今日のメニューについて
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 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:48:16 ]
>>458
ありがとう。
ということは自分でやるしかないんですね。
かなり大変そうですけど・・

460 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:53:19 ]
>>459
おいおい、ボタン押してウィンドウ開くなんて大した手間じゃないだろう

461 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 17:46:36 ]
>>456
AtlAxGetControl
AtlAxGetHost

>>460
新しいウィンドウで開くとなると結構処理が必要じゃない?

462 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 11:28:49 ]
大抵のダブブラウザは実装してる

463 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:18:40 ]
ATL使わずにIWebBrowser2のイベントを取得したいんだけど、
どういうコード書けばいいのか参考になるサイトとかないですか

探し方が悪いのかATLなコードしか見つからないんです。

464 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:27:15 ]
そんな事できるのか・・・

465 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 05:01:32 ]
>>463
DWebBrowserEvents2のこと? だったら普通にOLEコントロール扱うようにすればいけるんじゃね?
まあMFCとかATLとか使わずにやろうとすると死ぬほど面倒らしいが。

466 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:19:08 ]
>>465
うん、DWebBrowserEvents2。
WindowsMobile版のIEコンポーネントを使ってるんだけど、
ATLでの実装がコンパイル通らなくて、
ATLなしでの実装にするか・・・?ってとこにたどり着いたとこ。
死ぬほど面倒ならATLが通る方法調べるほうが楽かなぁ。。

467 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:20:39 ]
コンパイラはなに?

468 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:29:49 ]
VS2005Pro、C++でやってる



469 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:03:29 ]
コンパイルエラーの内容を書いた方がいいのでは。
あと接続ポイント周りをちゃんと理解すると光が見えるかも。

470 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:10:11 ]
>>466
Essential COMに載ってるよ。ネストクラスしたりとかなり面倒だったけど
ATLなし(Win32SDKのみ)でイベント取得までは確認できた。

471 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:50:34 ]
VC++あるなら、CHtmlViewのソースでも見るとか。CHtmlViewが使えるならそれ使うに越したことはないと思うが。

472 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 02:59:40 ]
IEコンポーネントのJavaScriptを一括で

無効にする方法ってありますか?


473 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:50:05 ]
あるんじゃないの?
俺はやったことないけど、使っているブラウザ (Donut RAPT)が
ボタン1つでオンオフできる機能を持っている。

474 名前:デフォルトの名無しさん [2008/04/24(木) 20:30:33 ]
表示してるページで右クリックメニューに追加した「irvineにすべてのURLを送る」みたいのを
自動で実行するのはどうしたらできますか?

475 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:08:05 ]
MFCで組んでるんですが、いろんなサイトを見ていくと使用メモリが増える一方。
メモリリークしていると思ったほうがいいのでしょうか?
それとも履歴蓄積によるものと考えてしまっていいのでしょうか?

476 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:28:31 ]
>>475
メモリリークっていうか、開放し忘れじゃね?
よくあるみたいだよ。


477 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:49:52 ]
IEコンポーネントを使うとそうなるって問題もあったはず。
一旦アプリを最小化すると開放されたようになる。
本当にリークしてるのか、本当に開放されてるのか、分からないけどね。

478 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 12:15:51 ]
>>477
最小化すると減るのはワーキングセットの量。



479 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:38:59 ]
タスクマネージャーとかで見る使用メモリが増えていくからといって
メモリリークしてるとは限らない。
ttp://kkkon.hp.infoseek.co.jp/tips/MFC/MemoryLeak.shtml
この辺参考にしてみるといいかもね。

480 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:50:12 ]
なんかFlash関係が動かなかったりするね。

481 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 02:27:06 ]
IEコンポーネントでHTML内に記述されたJavascriptの関数を実行したいのですが、
可能でしょうか?HTMLは自分で用意したものです。

483 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:27:54 ]
>>482
できるよ。
スクリプトを動的に追加することができるから追加したコードで静的なコードを実行すればいい。

HTMLを自分で用意するんだったらIEコンポーネントでやる用途が想像できないけど?

484 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 04:39:22 ]
>>483
homepage3.nifty.com/LILILIN/HOWTO/activex_javascript.htm
このページの情報を参考にして実装する事ができました。

では逆にHTML側から、ブラウザ(アプリケーション)の関数を実行する事は可能でしょうか?
さすがに無理ですかね、それは・・・

485 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 06:30:53 ]
>>484
window.external経由ならわりと楽勝で。

486 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:43:36 ]
IE拡張(BrowserObjectHelper)からマイドキュメントフォルダにファイル書き込んでるんだけど
IE保護モードがじゃまして書き込めねぇ・・・
いくつかMSのサイト読んでレジストリいじったりしたが、相変わらず駄目だ
誰かやり方おしえて。

487 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:21:05 ]
アウトプロセスのCOMサーバでも作ってデータ送って書き込ませれば?

488 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:31:02 ]
それは最後の手にしたいな。
www.microsoft.com/japan/msdn/ie/general/protectedmode.aspx
書き込み時に、ブローカープロセスの昇格ってのが出るようにできるっぽいけど、
ここにあるようにレジストリに書いたがうまくいかん。



489 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:58:46 ]
>>490
HTMLID_FINDでググれ
support.microsoft.com/?scid=kb%3Ben-us%3B175513

492 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:44:37 ]
ダイアログに WebBrowser を 貼り付けて 表示しています。
その ページ内で window.close() を 呼んだら

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



493 名前:デフォルトの名無しさん mailto:sage [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("~")); //URLの読み込み(のつもり)
aDoc->get_images()


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

コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。

495 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 09:21:35 ]
そういや俺もニコニコとかのフラッシュ使ったページでキー入力効かなかったことがあったな。
どうやって解決したか思い出したら書き込むよ。

498 名前:デフォルトの名無しさん [2008/07/23(水) 11:55:03 ]
質問です。
戻る、進むことが出来るか否かを判断するにはどうすればいいんですか?
IWebBrower2のメソッドにそれらしき関数が見当たらなかったんだけど



499 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:21:06 ]
NewWindow3にしちゃうのは?

503 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:53:44 ]
WSH/VBScriptからNewWindow?でcancelできない?

504 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:49:59 ]
しらんけど↓でなんとかならんかのお
Microsoft Web Browserコントロールのセキュリティを制御する:CodeZine


506 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:40:03 ]
ページから移動するんじゃなくて、ページごとに作り直すといいんじゃない?

507 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 22:13:09 ]
>>504
AtlAxCreateControlExを使用した方法だとうまくいきますよ。



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





509 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 01:17:13 ]
win32oleを使用したことが無いので詳しくは分からないが、IHTMLDocument2のI/Fが取れれば、
メンバ関数elementFromPointでできると思う。


514 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:09:26 ]
IE7 + Vista + 保護モードだと、BHOからファイル書き込みが
所定のパスにできないですよね。
これを解決しようと奮起してます。
ファイル書き込み部分をCOM化しようとしてるんですが、
どうにもうまくいきません。
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を生成した瞬間にダイアログが出ることを期待してるんですが、
ぜんぜんそうなりません。

515 名前:514 mailto:sage [2008/09/27(土) 22:11:01 ]
ファイル書き込みのCOMはBHOと同じDLLに含まれてます。
ファイル書き込みのCOMを別のEXEサーバーにおいて、
BHOから呼び出したんですが、COM生成はできても、
ちょっとするとEXEサーバーから勝手に切断されてしまいます。
どうしていいのか、さっぱりわかりません・・・

516 名前:512 mailto:sage [2008/09/30(火) 09:54:56 ]
>>513
ありがとうございます
やってみます

517 名前:hiro [2008/10/08(水) 14:47:16 ]
こんにちは。
www.nitoyon.com/vc/tips/ie_component.htm
のサンプルコードを落として VS.net 2003 Standardで
開いてビルド実行、アドレスバーに打ち込んでGOを押しても
メッセージが出て(atlcomcli.h Line148)で
実行時にエラーになります。
comは初心者でよく分かりません。
どなたか対処法をご存知ないでしょうか?
どうかよろしくお願いします。

518 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 17:40:03 ]
>>517
そこの「VC++.NETでの注意点」ってとこ読んだか?



519 名前:hiro [2008/10/08(水) 18:50:31 ]
はい、読みました。

昔会社でやってた頃、VC6.0のときは作動できたのですが、
なぜか自宅のVC++.net 2003 Standardではエラーが出るのです。


520 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:58:55 ]
html 関連の質問です。
VC++ 2005、WinXPでプログラムを組んでいますが、あるhtmlファイルからanchorタグを読み込み、リンク先のページを取得したいと思います。
一々、自作のライブラリでリンク先を検出するようだと、作成時間がかかって仕方ないので、どなたか、htmlをパースしてリンク先のアドレスを取得できるような
ライブラリや関数などをご存知の方、教えていただけないでしょうか?


----

c++相談室から誘導されてきました。
よろしくお願いします。

522 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:10:07 ]
その程度の用途でIEコンポーネントなんか使ったら余計時間かかる気がするが。
正規表現かなんかで抽出したほうがはやくね?

523 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:18:16 ]
マジっすか……
正規表現だとboost辺りかな……

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

どうもありがとうございました 

524 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 13:17:44 ]
BHOを作ってるのだが、
VSのプロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド
にiexplorer.exeのパス書いて、デバッグ実行すると、
IEが起動して自動的にアタッチしてくれる。
それはいいんだが、なぜかそうやって起動するとIE7+Vistaでの保護モードが無効になってしまう。
その状態でインターネットオプション見ても保護モードにチェックは入ってるのに。
普通にIE起動したら保護モード。
誰か理由説明できる人いる?

525 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 14:12:10 ]
その状態で2ch見ても保護モードにならんの?

526 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:33:38 ]
素のWindows2000

530 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:48:42 ]
RegExpはVBScript 5.0だろ
IE5.0だろ
素のWindows2000だろ

531 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 21:27:32 ]
鬼車使っとけ

532 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:06:31 ]
IDocHostUIHandlerを実装したクラスを適用させるにはどうすりゃいいんでしょうか?
NavigateComplete2でSetUIHandlerはイクないみたいなことが色々書いてありますし、
それでは初めてのNavigateの時にはXPスタイルを適用できないみたいですし・・・
GWL_USERDATAをGetWindowLongでIAxWinHostWindowを取得してSetExternalUIHandlerでも出来ないことも無いですが、
D&Dが使えなくなるっぽいなのでこちらもだめみたいです

533 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:55:09 ]
MFCのソースでも見ればいいんじゃね? Platform SDKに入ってなかったか。

534 名前:532 mailto:sage [2008/11/20(木) 11:41:01 ]
MFCの環境が無いので見れません
ごめんなさい

535 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:57:27 ]
>>534
>>533は「無償配布されてるPlatform SDKを入れてみろ」って言ってるんだと。

536 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 12:06:41 ]
>>535
Platform SDKは既に入れてありますが、MFCのソースはどこにありますでしょうか?
mfcディレクトリにはヘッダしか見受けられませんが・・・

537 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 13:02:22 ]
src\mfcにないならないんじゃない?

538 名前:532 mailto:sage [2008/11/20(木) 13:23:30 ]
src\mfcを検索してみましたが、IDocHostUIHandlerの記述はないようです

本題に戻って、お願いします



539 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 16:57:23 ]
>>538
ttp://msdn.microsoft.com/en-us/library/aa770041.aspx

540 名前:532 mailto:sage [2008/11/20(木) 17:24:56 ]
>>539
こんな方法で出来るとは・・・
神様ありがとうございます

541 名前:sdaf mailto:asdf [2008/11/26(水) 16:16:56 ]
adsf

542 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 18:22:37 ]
ie7でShellWindowsの中からactiveなものを見つけることはできないっすか?

543 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:33:39 ]
MFC(VC++6.0)のCHtmlViewで、右スクロールバーの「現在のスクロール位置」の取得
方法が分かる方はいらっしゃいますでしょうか?

いろいろ調べて、試してみたりしたのですが、どうしてもうまくいかないのです…


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

参考になるソースなどあるサイトなどあったら教えて下さい。

545 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:12:13 ]
まあIHTMLDocument*あたりからDOM経由すればそういうことはできるが、
普通はそういう面倒なことはせずに直接自分でフォーム送信時に送られるリクエストを作成するだろうな。

546 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:55:20 ]
>>546
>>517 じゃないけど助かりました!

550 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:31:52 ]
そうか

551 名前:デフォルトの名無しさん [2009/03/22(日) 02:24:55 ]
IE8になって、IEコンポーネントを使って値を設定するときのセキュリティの変更があったようです
INPUT TYPE="FILE"
に設定するのに今までフォーカスを当ててからSendKeyを使っていたのですが、どうやら駄目になった模様・・・

解決方法はあるのでしょうか

552 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:29:34 ]
知らんけどタイミングが合ってないだけじゃないのか?

553 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 10:21:37 ]
能無しはけーん

554 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:46:49 ]
それはそれは。。。がんばって!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<145KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef