07/01/16 13:47:20
C#でSHDocVw.dll参照に追加してWebBrowserClass使うとき、
32bit環境だとHWNDプロパティがInt32で返ってくるんだけど、
これって64bitだとどうなってるの?
IntPtrで返ってくる? それともInt64?
201:デフォルトの名無しさん
07/01/21 09:06:26
なんかこんなの見つけた。
URLリンク(www.hannan-u.ac.jp)
今時の卒論ってこんな程度なの?
202:デフォルトの名無しさん
07/01/21 09:11:01
学校によるんじゃない?
203:デフォルトの名無しさん
07/01/21 11:50:20
卒論wardファイルw
204:デフォルトの名無しさん
07/01/21 11:53:39
スクリーンショットがDonut RAPTっぽく見えるんだが
205:デフォルトの名無しさん
07/01/21 15:01:08
読んでしまった
しかしながら現状としては①②③個々のプログラムの方向性は出来上がってきたものの、
個々を関連付けるプログラムの作成には至っておらず、前述されている「タブブラウザ」への
組み込み、動作テスト等もまだ出来ていない状態である。最終的には独立したプログラムと
して完成させ、デスクトップ上で起動できる状態を目指していく状態にある。
何もしてねーwwwwww
206:デフォルトの名無しさん
07/01/22 00:14:04
PCに縁遠い年寄り教授をだまくらかすにはこれで十分なんだろ
207:デフォルトの名無しさん
07/01/22 00:27:18
とってもw ard!
既に社会人で業務としての資料作りも慣れてる俺が言うのもなんだが、
内緒だけどあの程度プレゼン資料なら、前日の夕方から慌てて徹夜でデッチあげたりしてる。
208:デフォルトの名無しさん
07/01/22 00:40:35
>>207
そうやってでっち上げたんじゃないのw
209:デフォルトの名無しさん
07/01/22 00:41:28
そんな卒論って・・・・・
まぁありかなw
210:デフォルトの名無しさん
07/01/22 00:50:16
大学がアレなの?
それとも学部がヲイなのか?
当然ゼミはヌルポなんだけど、学生はもっとガッされるべき。
211:デフォルトの名無しさん
07/01/22 01:39:03
阪南大学だってさ。
どこか分からん。国立じゃなさそうだ
212:デフォルトの名無しさん
07/01/22 01:41:46
4年も大学で学んであの程度ですか、そうですか。
213:デフォルトの名無しさん
07/01/22 02:13:40
今日からここは自分の卒論を晒すスレになりました
最初のかたどうぞ
↓
214:デフォルトの名無しさん
07/01/22 02:56:21
freenetみたいだけど2chネラー向きのファイル共有ソフトの提案
215:デフォルトの名無しさん
07/01/22 04:17:50
タイーホw
216:デフォルトの名無しさん
07/01/22 04:19:11
IEコンポーネントの使い方をやさしく指導してくれるサイトや本ってあります?
217:デフォルトの名無しさん
07/01/22 08:23:35
以下のテンプレに従って質問してください。
【性別】 男/女
【年齢】 実年齢
【居住地】 現在住んでいる所を行政区程度まで
【職業】 ありのままに
【身長】 cm表記で
【体重】 kg表記で正直に
【スリーサイズ】 バスト・ウエスト・ヒップをcm表記で。
【画像URL】 全身ならびに顔写真を100万画素クラスで。
【メールアドレス】 携帯電話もしくは、プロバイダ等のアドレスを。
218:デフォルトの名無しさん
07/01/23 08:01:54
相当偏差値低いらしい阪南大学。
学生の質が垣間見えた。
219:デフォルトの名無しさん
07/01/25 02:20:31
はいはい、次の卒論どうぞ。
220:デフォルトの名無しさん
07/01/25 18:55:29
IHTMLWindow2::execScript で外部からjavascriptを実行できることは
わかったのですが、オブジェクト型を引数にとるjavascript関数に
引数を渡して実行することは不可能なのでしょうか
(例えばVCから IUnknown* の情報を渡したいとか)。
221:デフォルトの名無しさん
07/01/26 20:40:08
>>199
今更だけどなんか見つけたよ。
URLリンク(isawseashell.blogspot.com)
222:デフォルトの名無しさん
07/01/27 02:14:46
>>199
私も>>221のリンク先とと同じくUrlMkSetSessionOptionに
INTERNET_OPTION_PROXYを渡して実現してた。
問題なく動作するはず。
223:デフォルトの名無しさん
07/01/27 20:53:20
System.Windows.Forms.Webbrowser
を使ってる者ですが、
これを使って表示している場所から、別のリンク先をクリックした際に、
何を送信しているか補足する場所ってありますでしょうか?
Navigatingメソッドでは何もつかめなさそうですし。
画面上のHTMLソースだけではなく、HTMLヘッダーだけではなく、ファイルに書き出していない
メモリ上のクッキーの値もみたいのですが
知ってる方、よろしくお願いします。
環境
XP64 VS2005 C#
224:デフォルトの名無しさん
07/02/02 22:55:44
すみません javaScriptでIEコンポ内の
ページを閉じるのを感知したいのですが
なにか方法あります?
225:デフォルトの名無しさん
07/02/02 23:03:59
フォースを使え
226:デフォルトの名無しさん
07/02/08 19:13:13
htmlをブラウザに表示する前段階でhtmlを改変したいんです。
イメージとしてはプロキシサーバとかポップアップブロックみたいな感じ。
つまり間に一つ噛ましたいわけです。
どうしたらいいか教えてください。環境VC++
227:デフォルトの名無しさん
07/02/08 19:30:14
>>226
Proxyを間に入れれば?
228:デフォルトの名無しさん
07/02/08 20:01:07
>>227
そうしてみます。どうもでした。
229:デフォルトの名無しさん
07/02/08 21:38:06
自プロセス・別スレッドでProxyって感じの実装を今試してるよ。
C#だけど。
230:デフォルトの名無しさん
07/02/08 23:02:14
WebBrowserClassとかHTMLDocumentClassとかで
IEの表示文字サイズがなんになってるかとか 調べられないかな・・
どうやったら 調べられるか誰か教えてくれ・・・・
231:デフォルトの名無しさん
07/02/08 23:15:05
>>230
いわゆる最大~最小の文字サイズ?
それは初歩だと思うけど、「ExecWB OLECMDID_ZOOM」辺りでググれ。
232:デフォルトの名無しさん
07/02/09 01:14:24
人の卒論って面白いね^^
233:デフォルトの名無しさん
07/02/16 14:31:51
>>232
面白いってか、あれって卒論ってレベルじゃねーぞ。
なんか講義一回分の資料って感じじゃね?
街のパソコン教室って感じで、大学でやられても困るけど。
234:デフォルトの名無しさん
07/02/21 14:05:15
スクリプトエラーのダイアログを非表示にしたいのですが、
Sleipnirのこれ
URLリンク(www.sleipnir-wiki.jp)
はどういう実装になっているのでしょうか?
235:デフォルトの名無しさん
07/02/21 19:36:43
IOleCommandTarget::ExecでOLECMDID_SHOWSCRIPTERRORを握りつぶす
Sleipnirの実装は知らんが、DonutRAPTのソースを落としてきて
AtlhostEx.h,ScriptErrorCommandTargetImpl.h,DialogKiller.h辺りを眺めてみればいいと思う。
対象言語がC++以外の場合は知らん。
236:234
07/02/21 21:27:42
>>235
今からダウンしてくる。
thx!
237:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/03/17 06:03:52
プロセスもういっこ作ってそこで制御
239:237
07/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入手先
07/03/17 16:46:25
MSN版IE7
URLリンク(promotion.msn.co.jp)
URLリンク(download.msn.co.jp)
Yahoo版IE7
URLリンク(recommend.yahoo.co.jp)
URLリンク(recommend.yahoo.co.jp)
URLリンク(a109.g.akamai.net)
Google版IE7
URLリンク(www.google.com)
URLリンク(dl.google.com)
241:デフォルトの名無しさん
07/03/24 22:04:58
テレビ番組の番組表なんですけど
その日によってURLが変わるんですけど
これをお気に入りにできませんか?
スクリプトのようなお気に入りってできます?
ローカルHTMLを経由してやるのは簡単ですが
ちょっと醜いやり方のような・・・
242:デフォルトの名無しさん
07/03/25 02:13:04
IEコンポーネントに関係あるかなぁそれ。
日付に合わせてURLを作成して移動するbookmarklet作ればいいんでない?
243:241
07/03/25 09:45:27
THX!
javascript:ってやつですね?
IE特有の機能で、多分スクリプトに関係しているので
ここか、と思いました。
普通のHTML内のスクリプトとはちょっと違いますし・・・
(上述のローカルHTMLならそうかも)
ちなみにここってBHOとかは作らないんですか?
どうもありがとうございました。
244:243
07/03/31 00:23:07
ええともはやスレ違いなので質問という訳ではなく
独り言なのですが・・・
ブックマークレットってローカルファイルを表示中のIEからは
スクリプトブロックされて動かないみたいですね・・・
(XP SP2以前は動いたような?)
というかこういうのってどのスレに行けばいいのだろうか?
WSHでもHTAでもHTMLでもないし・・・
245:デフォルトの名無しさん
07/03/31 00:28:43
>>244
Web制作板だっけ? そんな板があったハズ。
246:244
07/03/31 16:48:21
すいません・・・何度も・・・
以前にもWeb制作板内を探したんですが
やはりWebサイトを作る、という方向性で
IE依存のスクリプトやIE固有の機能に関しては
あまり積極的ではないような・・・?
スクリプトの場合、こことかはいいのかな、とも思うんですが・・・
スレリンク(hp板)
どうも度々すみませんでした
247:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/04/09 20:00:14
他と全く同じようにしてムリならばムリなんだろう
249:デフォルトの名無しさん
07/04/16 18:34:24
選択範囲の座標を得る方法を教えて下さい。
IHTMLTxtRange 辺りかな?と思ったのですが、分かりませんでした。
250:デフォルトの名無しさん
07/04/18 22:08:02
このスレってまだ生きていますよね。
IEコンポ使ってhtmlの表示を行っている途中で
ある特定の<img src="xxx">が出現したら、その画像を置き換えたいのですが
やり方がどうもわかりません。
htmlを書き換えて一時ファイルを作成してとかではなく、メモリストリームとかで処理したいのですが
ヒントとか、解説があるサイトとかあれば教えてください。
251:デフォルトの名無しさん
07/04/18 22:17:48
URLリンク(tvde.web.infoseek.co.jp)
やだやだ…そんなところ舐めないでよぉ
252:デフォルトの名無しさん
07/04/20 05:58:23
>>250
馬鹿のスクリプト厨で当然.NETもよく知らない俺ですが
ActiveXならbody.onloadのタイミングとかで
document.imagesを調べる、というのでは駄目でしょうか?
253:デフォルトの名無しさん
07/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
07/04/20 08:23:56
>253
どうもありがとうございます。
ただ、IHTMLTxtRange::get_textって、選択された文字列そのものですよね?
あいうえお
~~~~~~
↑ここが選択されている場合、「いうえ」が納まっている。
私が欲しいのは文字列そのものではなく、その選択されている範囲座標なんです。
例えば、xy座標で、左上が10:10、右下が20:60 みたいな。
要は、マウスでクリックした座標が、選択範囲内か、そこから外れた位置なのか?
を知りたいわけです。
255:253
07/04/20 21:54:40
>>254
おおこれは大変勘違いしました。お恥ずかしい・・・
どうも申し訳ございません。忘れてください・・・
256:デフォルトの名無しさん
07/04/21 14:59:24
選択されていれば範囲内
選択されていなければ範囲外
257:デフォルトの名無しさん
07/05/14 21:41:12
IHTMLDocumentから何とかIWebBrowserを取得する事ってできないですかね?
258:デフォルトの名無しさん
07/05/16 22:25:34
「IHTMLDocument2からIWebBrowser2を取得する」なら
「ウインドウハンドルからIWebBrowser2を取得したい」で
ぐぐって出てくるコードに該当個所がある。
259:デフォルトの名無しさん
07/05/17 16:36:45
250とかぶるけど、特定のURLへのリクエストを別のURLにリダイレクトしたい。
Navigate()再発行とかするとimg srcでうまくいかないからダメ。
OnBeforeNavigate2とかのタイミングで、URLをコッソリ書き換えることが出来ればいいんだが。
IInternetProtocolImplとかそのあたりを実装するんじゃまいかと思ってるんだが、誰か知らない?
260:デフォルトの名無しさん
07/05/17 18:45:00
知らんけどイベントハンドラ実装した?
261:259
07/05/17 18:56:01
>>260
OnBeforeNavigateイベントでURLを取得は出来るが、LPCTSTRなので書き換えは出来ない。
たぶんイベントじゃないと思うんだよね。PassthroughAPPとかそのあたりのヨカン。
ドキュメントが少なすぎてわからん。
262:デフォルトの名無しさん
07/05/17 20:24:06
OnBeforeNavigateでキャンセルしてNavigateじゃだめなん?
263:259
07/05/18 11:49:16
>>262
それだと<img src=""> のときに画像表示がキャンセルされてページが遷移しちゃうからダメ。
264:259
07/05/18 12:10:07
説明が足りないみたいなのでもう一回。
ある書き換え不能なサイトのHTMLに、存在しないサーバへの画像リンクが多数埋め込まれている。
オレは本当の画像の所在を知っているので、問い合わせ先サーバ名をこっそり差し替え、存在しないサーバが存在するかのようにレンダリングしたい。
プロセス外に影響がないようにしたいので、etc/hosts をいじるとかはしたくない。
265:デフォルトの名無しさん
07/05/18 15:31:59
オミトロンを使えばいいような気がする
266:259
07/05/18 18:37:59
>> 265
あーほんとだー できそうだー
267: ◆PAa2MRiwDQ
07/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
07/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:デフォルトの名無しさん
07/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( "URLリンク(www.google.com) ), flags( 0 ), target( "" ), post( "" ), headers( "" );
iweb->Navigate2( &url, &flags, &target, &post, &headers );
エラー処理は省略してますがこんな感じです。
何か処理が足りて無いのだと思うのですが、よろしく願いします。
270:デフォルトの名無しさん
07/06/26 12:29:56
>>269
Vistaを使ってないのでわからないですが、
Vistaでは他のゾーンにジャンプする場合
必ず他ウィンドウで開く仕様なんじゃないですか?
最初にInternetExplorerオブジェクトが生成された場合のゾーンが
インターネットゾーンじゃないんでしょうね。
XPでもオブジェクト生成すると
アドレスバーには何も無いものが出てくるので
初期ゾーンが何かよくわからないですが・・・
くだらないやり方ですがiexplore.exeにURLを指定して起動すれば
ゾーン間ジャンプを避けられるんじゃないでしょうか?
それで後からShell.ApplictionでIWebBrowserを探して取得する、とか。
271:デフォルトの名無しさん
07/06/26 12:39:30
>>267
私はATLもMFCも知らないのでよくわかりませんが、
Invokeが呼び出されない、というからには
IDispatchが使われてないんでしょう。
IDispatch継承のカスタムインターフェースを実装したオブジェクトの場合
IDispatchが呼び出されるかカスタム部分が呼び出されるかは
場合によって異なります。
スクリプト言語やVBでレイトバインディングを使うと
IDispatchが呼び出されますが
それ以外の多くの場合にはカスタム部分が呼び出され、
IDispatchは無視されるはずです。
272:VC--
07/06/30 17:34:02
vcでCHtmlViewを継承して、javascriptを操作するプログラムを作りたいんですが・・・
とりあえず、CHtmlView::Navigate2を使って、URLを表示しただけで、具体的な方法が
わかりません。
例えば、あるサイトで画像をクリックしたら、画像が変化する(javascriptで実装)みたいなプログラム
があったとして、擬似的に発動させる方法が知りたいです。
キーボードイベント、マウスイベントで発生させる以外の方法で
知ってたらご教授願いします。
273:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/04 13:58:59
IEとかエクスプローラのアドレスバーから検索するときの
urlってどこから取得できるんだろう
275:デフォルトの名無しさん
07/08/04 14:56:19
レジストリでも検索してみたら?
276:デフォルトの名無しさん
07/08/04 21:40:42
regmonでみれば?
277:デフォルトの名無しさん
07/08/15 11:42:40
もうどうしても解決できなかったので質問させてください。
downloadcompleteイベントだけがどうしても発生しません。
環境 EXCEL2003sp2 VBA XPSP2 ブラウザ6.0
navigatecomplete2,documentcompleteは発生します。ただrefreshをさせたときは動作しない、(上のほうのレスにもあります)ので
downloadcompleteを使いたいのです。
一番近い私と同じ症状を下記ページで見つけました
URLリンク(www.microsoft.com)
↑の「WebBrowser コンポーネントの DownloadComplete イベントにうついて」です。
がmshtml.dllはPCに入っています。参照設定に問題あるのかと思いましたが、よく分かりませんでした。
F2キーを押してオブジェクトブラウザを見てもちゃんとdownloadcompleteはありますから、問題はないと思うのですが・・。
busyをdo loopはできればやりたくないです。
StatusTextChangeを使うのもサイトによっては問題が起きるでしょうからできれば避けたいです。
問題のxlsファイルをUPすることもできます。
278:デフォルトの名無しさん
07/08/17 01:28:34
すでに開いているIEのセッションからクッキーを取り出し、
IEコンポーネントを利用した自アプリでそのクッキーの情報を使う、
みたいなことは可能でしょうか?
あるいは単純に既存のIEと自アプリとでセッションを共有できればいいのですが、
レジストリでBrowseNewProcessというキーをNoにすることで全てのIEが
同一のプロセスで起動されるという情報がMSサイトにありましたが、
どうも効果がないようなんです。
279:デフォルトの名無しさん
07/08/20 22:20:26
IEコンポーネントで自分のuseragentを取得するのはどうやるんだぜ?
JavaScriptsだとnavigator.userAgentだと思うがVC++のやりかたわからんのだぜ
280:デフォルトの名無しさん
07/08/21 02:16:36
UrlMkGetSessionOption
281:デフォルトの名無しさん
07/08/21 20:27:24
>>280
㌧
282:デフォルトの名無しさん
07/08/23 22:03:01
IWebBrowser2::GetLocationURLでIEで表示されいてるURLを取得したのですが、IE7などのタブで現在表示されているかいないかの判定方法があれば教えて下さい。
283:デフォルトの名無しさん
07/08/26 20:01:34
自己怪血。ググッて>>282にヒットしたヤシはここ嫁
URLリンク(www.codeproject.com)
284:デフォルトの名無しさん
07/09/02 20:24:40
IEコンポを使った専用ブラウザを作ったのだけど、
ツール>インターネットオプション>セキュリティ>レベルのカスタマイズ
その他>混在したコンテンツを表示する
をOFFにしたいんだけど、どのInterfaceから操作できるんでしょうか?
285:デフォルトの名無しさん
07/09/17 02:58:47
>>128
URLリンク(msdn.microsoft.com)
DHTMLオブジェクト モデルのおかげで、ページの構造をその場で修正できますが、
F5キーを押すか、ブラウザの[最新の情報に更新(Refresh)]ボタンをクリックしたと
たんに変更内容がすべて失われます。DocumentCompleteイベントを処理してコード
ウィンドウを最新の情報に更新することもできます(DownloadCompleteイベントは、
DocumentCompleteよりも前に発生することに注目してください)。ですから、ページを
初めてダウンロードするときに発生するDownloadCompleteは無視して、更新によって
発生するときだけ、このイベントを扱うようにします。単純なBoolean型のメンバ、たとえ
ばm_bDocumentCompletedなどを使えば、このような状況を簡単に区別できます。
286:デフォルトの名無しさん
07/09/22 13:26:08
ie6までは、貼り付けたieコンポーネント内のリンクを
ユーザーが Enterキーで開くことが出来たのですが、
ie7から、開くことが出来なくなりました
キー操作でリンクを開く方法って、ないでしょうか???
287:デフォルトの名無しさん
07/09/26 13:40:19
URLリンク(www.nitoyon.com)
↑のHPの真ん中当たりのページを解析する/変更する2のソースなのですが、
コピペして実行しても期待通りの動作をしません。
if( strcmp( pszBuf, "temp") == 0){
// innerHTML を設定
pElement->put_innerHTML( L"hogehoge") ;
}
このif文の中には入るのですが、put_innerHTMLでHTMLにhogehogeと表示させる事が出来ません。
対象のHTMLには<p id="temp"></p>のように記述しています。
どなたか詳しい方助けてください。
288:デフォルトの名無しさん
07/09/26 20:55:53
>>287
俺がやったらうまくいったよ。
そのページを書いた人もおそらくうまくいっただろうし、
お前のプログラムに何か問題があるんだと思う。
何か変にいじっていない?
289:デフォルトの名無しさん
07/09/26 21:21:21
>>288
特にいじってないですが・・・
その試してみたソースうpしてもらえませんか?
それか俺のHTMLの方のソースに問題があるのかな・・・
そっちの線はうすいと思うけど・・・
290:デフォルトの名無しさん
07/09/26 22:00:22
>>289
URLリンク(kansai2channeler.hp.infoseek.co.jp)
IEコンポーネントの使い方2のソースを基に、
WM_CREATEでいきなりローカルのHTMLを表示するようにし、
GOボタンを押したときに例のテキスト変更の処理を行うようにしてある。
あとどうしても気に入らない点を自分のスタイルに書き換えているが気にするな。
VC++ 8だから"AtlAxWin80"にしてあることにやや注意。
291:デフォルトの名無しさん
07/09/26 23:22:34
>>290
ありがとうございます。ちょっと今アホな事してしまって開発環境があぼんしてしまったので、
再度環境を整えたら試してみます。
292:デフォルトの名無しさん
07/09/27 15:21:53
>>291
ん~どうやら
pElement->put_innerHTML( L"hogehoge");
の文でデバッガが立ち上がって落ちます。
<body>タグの間に
<p><div id="temp"></div></p>
って書いてるのですが、もしかして根本的に何か違いますかコレ
293:デフォルトの名無しさん
07/09/27 18:49:56
と、思ったら、ビルドをdebugからreleaseに変えたら無事動作しましたm(_ _)m
294:デフォルトの名無しさん
07/10/05 05:36:23
IEコンポーネントを利用してWin32で作成したウィンドウ内にHTMLを表示させているのですが、
表示させているHTML内のJavaScriptから、アプリケーション側の関数を実行する事は可能でしょうか?
295:デフォルトの名無しさん
07/10/05 20:35:21
ウイルスでも仕込むつもり?
296:デフォルトの名無しさん
07/10/05 21:58:22
>>295
いえ、ただJavaScriptで出来ない処理をアプリケーションに任せようと思って・・・。
逆は出来るんですけど、JavaScript側からアプリケーションの関数の実行は出来ないのでしょうか?
297:デフォルトの名無しさん
07/10/05 22:15:41
>>296
できるよ。externalで実装する。説明はめんどくさいからしないけど、
需要がある話なのでMSDNとかに載ってるんじゃないかなあ。
298:デフォルトの名無しさん
07/10/05 22:19:42
>>297
externalですか。ちょっとググってみます。
なんか1から丁寧に解説してくれてるサイトがあればいいのですが、
なかなかそういうのが見つからなくて結構困ってます。
VisualStudioの構造体の中身が勝手に表示される機能をつかって、
メソッド名から機能を予測して色々試してみる方法には限界が・・・
299:デフォルトの名無しさん
07/10/05 22:28:05
今アプリケーション側からJavaScriptの関数の実行はURLにjavascript:関数();でやってるのですが、
external使うともう少しちゃんとした方法で出来そうな感じですね。ただ使い方がさっぱりですが。
300:デフォルトの名無しさん
07/10/05 22:31:35
>>299
おまえ>>287だろ。マルチ野郎は氏ね。
301:デフォルトの名無しさん
07/10/05 23:20:22
WebBrowser1と2じゃまた違うっぽいですね。1ならいっぱい転がってるのに。。。
C#とVBばかりでなかなか読めないけど・・・
302:デフォルトの名無しさん
07/10/08 22:01:28
>>301
WebBroser1と2?なんか勘違いしてる気がするなあ。
externalはキーワードとしてちょっと曖昧だったかも。GetExternalで再度。
DonutRAPTとかでも実装してた気がするから、見ようと思えば見れると思う。
COMだから、C#/VB.NETよりC++のほうが普通に楽ですよ。
303:デフォルトの名無しさん
07/10/09 21:13:59
>>301
GetExternalだともっと情報が少なくなってますね・・・。
色々見てるとInvoke()とかInvokeScript()あたりが臭そうなのですが、
引数が多い上に、それぞれの引数が何を意味しているのか分からないので全く使えないのが現状です。
304:デフォルトの名無しさん
07/10/10 03:06:13
IDocHostUIHandlerインターフェース実装してGetExternalでIDispatchインターフェース実装したクラスのポインタ食わせてやればいけるはずだったと思うが。
305:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/11 11:30:43
NavigateComplete2とか待たないといけないんじゃね
307:デフォルトの名無しさん
07/10/11 12:38:17
>>306
それをキーワードに検索するといい感じのがヒットしたので使ってみました。
以下のコードをNavigate2の後に入れたのですが無限ループになってしまいますね。
while(pWB2->get_Busy(&pBusy)==VARIANT_TRUE || pWB2->get_ReadyState(&state)!=READYSTATE_COMPLETE){
Sleep(100);
}
なんか全然COMを理解してないような気がするのですが、少しソースを見ていただけないでしょうか?
URLリンク(ossan.fam.cx)
パスはieです。
308:デフォルトの名無しさん
07/10/11 15:01:57
>>307
こいつはマルチ野郎なので以後放置で
309:デフォルトの名無しさん
07/10/11 20:24:04
IEコンポーネントなんだけど、そのプロセスでだけキャッシュの保存先を
変更ってできる?
310:デフォルトの名無しさん
07/10/11 21:23:06
>>307
当たり前じゃん。
311:デフォルトの名無しさん
07/10/11 23:00:51
ゲッラゲラ笑った
C++系以外の言語から移植して気付いてないとかか?
312:デフォルトの名無しさん
07/10/11 23:06:26
Returns S_OK if successful, or an error value otherwise.
313:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/12 10:48:14
COMどころかスレッドも理解してないじゃん
316:デフォルトの名無しさん
07/10/13 02:45:43
javascript:test();に問題があるかも
317:デフォルトの名無しさん
07/10/14 10:14:14
結局どうすれば解決できるのでしょうか?
318:デフォルトの名無しさん
07/10/14 10:27:56
はい
319:デフォルトの名無しさん
07/10/14 13:53:42
>>317
こいつは自分で考える気が微塵もないクソ野郎です。以下放置で。
320:デフォルトの名無しさん
07/10/15 00:33:58
>>319
なんでそんなに執拗にからんでくるんですか?
ちゃんと考えてるし、色々努力してます。どうやら才能がないらしいですが。。。
321:デフォルトの名無しさん
07/10/18 05:17:57
質問です。
クッキーによるセッション管理をしてるサイトなのですが
途中まで、WebRequestクラスでログイン処理などをした後
その情報を使って、WebBrowserコンポーネントでそのサイトにアクセスしたいのです。
そこでクッキーを引き継がせる方法を考えたのですが
WebRequest側は、CookieContainerでクッキーを保持してるのですが
IEコンポネ側に対応したプロパティーが見当たりません。
何かいい方法はありませんでしょうか?
よろしくお願いします。
環境はC♯です。
322:デフォルトの名無しさん
07/10/18 12:55:03
いい方法はあります。
323:デフォルトの名無しさん
07/10/20 03:46:31
なんか、変な流れになっちまったな。
変な応答してるヤツは何がしたいんだ?
>>321
手軽な方法としては、一度、
WebBrowserのdocumentプロパティを
mshtml.IHTMLDocument2にキャストして
writeの中に、WebRequestクラスで受信したデータを放り込めば
クッキー情報含めて引き継がれるよん。
324:デフォルトの名無しさん
07/10/20 04:23:16
>>323
出来ない。
APIのInternetSetCookie で設定する。
325:デフォルトの名無しさん
07/10/22 19:09:00
C++ MFC で、HEADメソッドを手軽に送信できるような関数ないかな
いちいち
HEAD URLリンク(hoge.fuge.com) HTTP/1.1
とか書きたくないんだぜ
326:デフォルトの名無しさん
07/10/23 04:41:11
つくればいいじゃない
327:デフォルトの名無しさん
07/11/07 19:01:07
Temporary Internet Files の保存先を任意のフォルダに変更したいんだけど
どこいじればいい?
同時に立ち上がってるほかのプロセスに影響なく、特定のIWebBrowserのインスタンスだけ
変更できるとうれしいんだけど。
328:デフォルトの名無しさん
07/11/07 22:00:06
普通に無理だろ常識的に考えて
329:デフォルトの名無しさん
07/11/07 23:41:56
IEコンポーネントを使わなければおk
330:327
07/11/08 11:06:15
>>328
そうかな。。。出来ても良さそうなもんだけどなあ。。
331:デフォルトの名無しさん
07/11/11 19:51:17
IEの関数コールを監視して、どこでフォルダアクセスしてるか見れば?
最悪その関数をそのプロセスに対して差し替えて実現。
332:デフォルトの名無しさん
07/11/12 00:47:34
関数とかAPIとかのレベルじゃなくね?
333:デフォルトの名無しさん
07/11/12 02:51:06
フック。
334:デフォルトの名無しさん
07/11/12 13:26:31
定番の質問だが
・IEのクリック音を止めたい
・Temporary Internet Filesの位置を変えたい
・Proxyを追加したい。
この辺の事は、コンポネには装備されてなくて
IE自体も、直接レジストリを操作してるから
どうしてもやりたいなら、該当するレジストリの箇所を書き換えるしかない。
335:デフォルトの名無しさん
07/11/13 04:33:33
レジストリを書き替えたら当然純正IEにも影響が出ることをお忘れなく
336:デフォルトの名無しさん
07/11/13 04:59:44
if( strcmp(id, "foo") == 0 ){
pElement->put_innerHTML(A2OLE(boo));
}
こんな感じでidがfooである領域を書き換える事は可能だけど、
この領域に文字列を単純に追加する事って出来る?
今のところfoo内を読み込んで、strcatで文字を追加した後put_innerHTMLでやってるんだけど、
これじゃ二度手間な気がするんだが。。。
337:デフォルトの名無しさん
07/11/13 18:39:20
あるツールの開発でIEコンポーネントを使うか否かを検討しています。
例えば、IEコンポーネントを用いたミニブラウザの場合、複数起動しても、
それぞれが独立したcookie情報を用いることは可能でしょうか。
338:デフォルトの名無しさん
07/11/13 20:34:07
独立したCookieってどういうこと?
つかIE複数立ち上げて見ればわかるんじゃね
339:デフォルトの名無しさん
07/11/13 20:54:19
>>337
ブラウザが起動してる限り有効なクッキーの話だよね?
>>338がいうようにIE複数起動したときの動作がそのままIEコンポアプリ複数起動だとおもう。
たぶんクッキーは別になるんじゃないかな。
340:デフォルトの名無しさん
07/11/13 23:10:30
ちょっと質問が分かりにくかったようで、すみません。
例えば、mixiなどのオートログインが可能なサービスの場合、Cookie情報で
これを実現しています。ブラウザを複数起動しても、そのCookie情報が当然、
同じものがサーバーに送られます。(でないと、オートログインできません)
で、IEコンポーネントを用いたツールは、あくまでも別ツールなので、
仮にmixiにアクセスしたからと言って、自動でログインされても困るんですね。
そこで、Cookie情報はツールとブラウザとで異なったものにしておきたい。
また、ツールを複数起動した場合も、ツール毎にCookieは分けたいんですね。
で、IEの標準の動作では、複数起動しても、Cookieは共有というか共通になって
しまうんですが、IEコンポーネントの使い方次第で、Cookieをブラウザとは
別のものとして管理できるのかを知りたかったのですが、可能でしょうか。
341:デフォルトの名無しさん
07/11/13 23:18:49
Cookie自体はIEとの共有は避けられないと思った。
ただ、プロセス毎にCookieを利用しないようには出来るから、そのツール側で扱う情報を
Cookie以外の手法でなんとかするのがいいんじゃないの?
342:デフォルトの名無しさん
07/11/13 23:47:10
BeforeNavigate2でヘッダ弄ればなんとでもなるんじゃね?
343:デフォルトの名無しさん
07/11/14 00:06:51
返答ありがとうございました。
実験してみます。
感謝です
344:デフォルトの名無しさん
07/11/15 05:40:24
delphi7proでTwebbrowserを使って
チェックボックスやボタンを自動でクリックしたりするのをするようなソフトを作っています
そこで
e := WebBrowser1.OLEObject.Document.documentElement.getElementsByName('なまえ');
としているのですがオートメーションオブジェクトでサポートしていませんというエラーが出てしまいます
このエラーはどのような意味なのでしょうか
345:デフォルトの名無しさん
07/11/15 05:41:56
調べましたが、とっかかりさえ見つからないような状況ですので
わかる方がいらっしゃったら教えてください
346:デフォルトの名無しさん
07/11/15 11:07:04
getElementsByNameメソッドがあるのはDocumentだけだからじゃね?
"documentElement"が余計なんじゃね
347:デフォルトの名無しさん
07/11/16 20:21:41
ありがとうございます
e := WebBrowser1.OLEObject.Document.getElementsByName('なまえ');
e.Item(0).click();
のような感じで自動クリックできました
348:デフォルトの名無しさん
07/11/17 02:20:50
IEコンポーネントでは、HTMLをサイトから読み込んだあと、<IMG>や<IFRAME>内のCGやHTMLを
自動的にサーバーにアクセスして取得しますが、BeforeNavigate2のように、それらのデータを
取得しにいく前にイベントとして拾う方法がありましたら、教えてください。
また、redirectで別サイトにgetを送信する前に、それをイベントとして取得する方法があり
ましたら、これについてもお願いします。
349:デフォルトの名無しさん
07/11/17 04:28:54
自分でイベント作ったら?
350:デフォルトの名無しさん
07/11/17 16:40:32
>>349
そこまでの自由度あるの?
351:デフォルトの名無しさん
07/11/17 18:21:37
>>348 Proxy
352:327
07/11/28 10:52:27
NtQueryValueKeyにフックをかけて
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache
にウソを返すようにしたんだけど、切り替わらないorz
353:デフォルトの名無しさん
07/11/30 07:17:28
レジストリの値変更しても再起動するまで反映されないんだから
システムがどっかメモリ上にキャッシュしてるんだろ
354:デフォルトの名無しさん
07/12/01 18:17:18
VBを使用しております。
IEオブジェクトに表示中の画像ファイルを、指定のフォルダに保存するには
どのようにすればよいでしょうか?
要するに、マウスの右クリックで表示される「名前を付けて画像を保存」を自動行いたいのです。
アクセスするたびに、画像は変わるため、URLから指定しDLすることは出来ませんでした。
IEオブジェクトの保存したい画像のアイテムは
ie.document.all.item(x)
取得できました、この先がわかりません。
おわかりの方がおられましたらお教えください
355:デフォルトの名無しさん
07/12/01 20:39:58
SRC見てダウンロードすればいいんじゃね
356:デフォルトの名無しさん
07/12/01 22:12:03
>>355
URLを見てDLということですか?
アクセスのたびに変わるからNGと記載したのですが・・・
357:デフォルトの名無しさん
07/12/01 23:58:20
SRCプロパティのことじゃねーのかハゲ
358:デフォルトの名無しさん
07/12/02 13:40:06
>>357
うーんよくわかりません。
そのSRCプロパティのURLからDLすると、画像ファイルが変更されNGなのですが?
359:デフォルトの名無しさん
07/12/02 16:48:18
いみがわからない
360:デフォルトの名無しさん
07/12/02 18:02:41
>>359
下のセキュリティ画像みたいにアクセスすると画像が変わります。
URLリンク(signup.live.com)
変わると困るので、IEに表示中の画像がほしいのです
361:デフォルトの名無しさん
07/12/04 18:18:45
アクセスするたびに変わるのは、画像じゃなくてURLのほうじゃねえかw
それも変数の値が変わる程度で、呼び出し先のCGIは固定だか?
362:デフォルトの名無しさん
07/12/04 20:44:25
URLリンク(tool-6.net)
VS2005でアセーションエラーが出まして
なぜhMyIEがNULLになるのかがわかりません。
363:デフォルトの名無しさん
07/12/04 22:56:08
CreateWindowの戻り値がNULLだから。
364:デフォルトの名無しさん
07/12/04 23:21:29
>>361
画像のURL指定し、ブラウザで表示させ、更新してもそのたびに変わるのですが?
いったいどう固定すると、画像も固定できるのでしょうか?
365:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/05 01:28:41
GET値に乱数を追加する
367:デフォルトの名無しさん
07/12/05 11:27:57
>>364
画像URLは固定でリロードするたびに画像の内容が変わってしまうと言うことか
だからIEコンポで表示させた画像を取得したいと言うわけか
一時キャッシュ覗いて探してみるとか・・・
まぁ無理なんじゃね?
368:デフォルトの名無しさん
07/12/05 18:48:02
>>363
解決するためにはどうすればよいですかね?
369:デフォルトの名無しさん
07/12/06 11:29:13
いくら考えても解決出来ません。
お願いします。
解決方法を教えて下さい。
370:デフォルトの名無しさん
07/12/06 19:16:38
URLリンク(www.ezinfo.jp)
アセーションエラーが出るのは、初期化がいけないのですかね?
371:デフォルトの名無しさん
07/12/06 20:32:51
うっほほほへ!??!
できた!!!
クハハハハハハwwww
やっべぇwwww何コレwwwww気付かなかった俺バカスwwwww
ありがとうございましたぁ!!
うっひょひょひょwwww
372:デフォルトの名無しさん
07/12/07 19:12:42
C++を使用しています。
子ウィンドウを立ち上げてIEコンポーネントのブラウザを表示させたいのですが、
一度子ウィンドウを消して再度立ち上げるとファイルのダウンロードが発生して表示することができません。
原因に心あたりがある方、教えていただけませんか?
373:デフォルトの名無しさん
07/12/08 03:35:54
>>360
1.ドキュメント全体をビットマップで保存する
2.特定画像のみビットマップで保存する
3.キャッシュから見つけだして画像を表示する
と、いろいろ試してみたが、そのページのころころ変わる画像はキャッシュされてないっぽいので、
VBでやるなら、1か2になるかなあ
本気でやるならVBじゃなくてC++にしたほうがいいかと
374:デフォルトの名無しさん
07/12/16 12:04:27
IHTMLDocumentのwrite()ってjavascriptのdocument.writeとは違いますよね。
最初にabout:blank開いてからIHTMLDocument#write()すると書き込めるけど
特定のアドレスのHTML開いた後にIHTMLDocument#write()すると
いったんHTMLがクリアされて書き込みになる。
javascriptのdocument.writeみたいに、いつでも書き込むことができるインタフェースないですかね。
innerHTMLとかouterHTMLは事情により使いたくないのです。
375:デフォルトの名無しさん
07/12/16 12:52:00
同じだよ
読み込み完了後ならjavascriptのdocument.writeもページの置き換えになる
やってみろ
376:デフォルトの名無しさん
07/12/16 13:20:44
ページ移動時のカチッって音を消すにはどうすればいいのでしょうか?
377:374
07/12/16 13:28:08
>>375
うむープラガブルプロトコルとか特殊なことやって
ページ表示した後だから、うまくいかんのかなー
378:デフォルトの名無しさん
07/12/16 16:54:12
>>376
visible = falseにしとくか
レジストリいじるかしかない
379:374
07/12/16 16:57:30
ああああ、言っている意味を把握した。
なるほど、確かにHTML完全に読み終わった後の
javascriptのdocument.writeもページ置き換えになるね。
根本的な部分で理解が欠けていた・・・
ふむーじゃあ何とかしてDocumentCompleteさせなきゃいいのか。
380:デフォルトの名無しさん
07/12/16 17:21:29
innerHTMLとかで書けばいいんでないの?
381:デフォルトの名無しさん
07/12/16 17:38:58
>>378
pWB2.setVisible(FALSE);
じゃダメですか?何も変化がないのですが・・・
382:デフォルトの名無しさん
07/12/16 19:23:51
>>380
いや、それだと糞重いんで、なんとかしてdocument.write使いたいなと。
iframe src="about:blank"
として、そこに書き出すことで解決!
383:374
07/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
07/12/16 19:31:53
SafeArrayDestoryって要素の中身もvt見て、
VT_BSTRだったら勝手にSysFreeStringをやってくれるんだろうか。
だから先にSysFreeStringしちゃうと2重Freeで落ちるのかな。
385:デフォルトの名無しさん
07/12/16 20:27:16
IEコンポを使っている2ちゃんねるブラウザがその方法で追記してるから
不可能ではないはず
386:デフォルトの名無しさん
07/12/16 20:31:31
セキュリティーゾーンとかでいろいろ面倒だった気はするが
387:デフォルトの名無しさん
07/12/16 23:43:52
CHtmlView内で起こったスクリプトエラーをフックできないのですか?
おしえてエロい人
388:デフォルトの名無しさん
07/12/16 23:57:04
>>385
よく見かけるdelphiのコードではレイトバインディングで型変換はシステム任せにして
えいやっとwriteするけれど、きっとディスパッチの手間だけ速度では損するんだろうな。
389:374
07/12/17 00:01:35
>>385
あ、おいらへのレス?
about:blankで開いたページならdoument.writeでも切り替わらないよ。
2ちゃんブラウザはたいていabout:blankに書いてるし。
あとはjavascriptでロード時に実行されるように書くか。
390:デフォルトの名無しさん
07/12/17 12:31:40
>>269
Vistaにしたら、そうなってしもうた。
>>270の方法で解決しそうだけど回りくどいな。
391:デフォルトの名無しさん
07/12/17 13:13:13
>>387
できます
392:デフォルトの名無しさん
07/12/17 17:10:09
>>391
いいからその方法をとっとと書けよクズが。
知っててワザとやってるなら性格悪いだけのクズだな。
393:デフォルトの名無しさん
07/12/17 18:29:35
どうしよっかな~
394:デフォルトの名無しさん
07/12/17 19:43:06
>>392
すごい時刻ゲットしてるからって嫉妬すんなよw
395:デフォルトの名無しさん
07/12/17 20:56:43
なんでこのスレには糞しかいないんだよ。
IEコンポーネント使う少ない人達同士仲良くしろよ畜生
396:デフォルトの名無しさん
07/12/17 21:09:38
自分の質問の答えが返ってこない=糞
ですか。そうですか。
397:デフォルトの名無しさん
07/12/17 23:03:59
>>395
自称糞じゃないお前がじゃんじゃん質問答えろ
手始に387からな、12時間まってやるから早くしろよ
398:デフォルトの名無しさん
07/12/18 12:51:04
自分の質問の答えが返ってこない=糞だとは誰も言ってねぇだろが。
>>391さんは性格がいいですね?こうですか?わかりません><
399:デフォルトの名無しさん
07/12/18 23:41:02
じゃあ横で俺が答えてみようか。
つーかキーワードでググったらここの>>235がヒットしたんだが。
400:デフォルトの名無しさん
07/12/19 14:50:25
まぁ言ってる事に同感できなくはないが、口が悪い。
スレが荒れる。
401:デフォルトの名無しさん
07/12/20 12:36:32
IEのレンダリング結果において、XY座標から、近傍のテキストを
取得するにはどうしたらいいですか?
IHTMLDocument2::elementFromPoint()
で、エレメントを取得できるのはわかったのですが、もっと 1 文字単位で
文字を検出したいのです。できたら、エレメント内あるいはドキュメント全体における
文字の位置がインデックスでわかるとうれしいです。
402:デフォルトの名無しさん
07/12/20 16:38:01
すくなくともIHTMLDocumentやElementの何かの関数を使えば取れる、
というものではないはず。
血を吐くような努力が必要。てか事実上無理だと思う。
403:デフォルトの名無しさん
07/12/20 23:32:04
工夫次第で無理ではないな。
404:402
07/12/20 23:32:51
>>403
だったら具体的なやり方書いてよ、天才プログラマーさん。
405:デフォルトの名無しさん
07/12/20 23:36:14
>>404
指定座標位置付近の文字をカーソルで選択して
その選択文字列を読み取ればいい。
406:403
07/12/20 23:50:21
>>404
君はボンクラ
私は天才プログラマー
ということでいいかね。
407:デフォルトの名無しさん
07/12/21 03:13:15
いいえ
408:デフォルトの名無しさん
07/12/21 08:06:24
URLリンク(deftv.atspace.com)
URLリンク(deftv.atspace.com)
URLリンク(deftv.atspace.com)
409:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/21 08:47:06
>>405
その指定座標付近の文字を選択ってのはどうやるんだ。
選択時のマウス動作をエミュレートすんのか。
411:デフォルトの名無しさん
07/12/21 12:28:59
>>408
精神的ブラクラ
412:401
07/12/21 12:50:22
みなさん、ありがとうございます。やっぱりちょいと難しそうですね。
413:デフォルトの名無しさん
07/12/21 13:07:00
>>410
カーソルで選択ってものすごい基本的なWindowsAPIじゃん。ウインドウズのプログラマなら誰でも知っているだろ。
マウス動作をエミュレートって・・・アフォカ
414:デフォルトの名無しさん
07/12/21 15:31:56
>>413
おお?それはテキスト入力にフォーカス当たった状態のこといってんの?
そうじゃなくブラウザ上のふつうのテキスト部分の話とおもったんだが。
それもできるんか。
415:デフォルトの名無しさん
07/12/21 16:02:58
>>414
基本的なことをまったく理解していないな。ブラウザ上で普通に範囲選択してCtrl+Cあるいは、右クリックでコピーが実行できるじゃん。
それをプログラム的に実行するだけ。
416:デフォルトの名無しさん
07/12/21 16:05:02
>>415
ぜひ、そのコードを教えてください
417:デフォルトの名無しさん
07/12/21 21:19:44
これでWM_COPYとか言ってきたらズゴーなんだが。
418:デフォルトの名無しさん
07/12/21 23:05:37
JavaScript技でそんなのがあったな。Selectionオブジェクトだかを作って
その占有領域の座標を取って処理するの。座標から近傍文字、の逆バージョンだけど、
ユーザーが選択操作してなくてもできてたので、この応用でなんとかならないかな?
419:デフォルトの名無しさん
07/12/21 23:42:10
URLリンク(deftv.atspace.com)
420:デフォルトの名無しさん
07/12/21 23:46:50
>>415
いやだから、もっと具体的なコードかけよ、そこまでいうなら。
マウスエミュレートもプゲラって言った以上、それもしないコードだぞ?
まず選択するためには、選択始点のテキストがどの座標に存在するか取得しないといかん。
ってかこの時点でこの件は目標は達成なんだが。
421:デフォルトの名無しさん
07/12/26 10:05:19
IHTMLElement から、実際の描画に使われてるフォントの種類やサイズを
調べるにはどうしたらいいですか? style とか見ても null なんですが、
他にどこを見ればよいものやら。
422:デフォルトの名無しさん
07/12/28 13:10:50
いまだに>>378が分からないのですが・・・
pWB2->put_Visible(VARIANT_FALSE);
では音は消えませんでした。もう少し詳しく教えて頂けませんか?
423:デフォルトの名無しさん
08/01/08 16:22:27
サムネイルのような画像を、そのリンク名と関連付けしてデータベース化したいと思っています。
表示中のサムネイル画像ファイルをキャッシュフォルダから拾う方法はあるでしょうか。
キャッシュフォルダには別名で格納されているようで、特定する方法が分かりませんでした。
作成日やサイズで特定しようにも、確実とは行きません。
直接GETする以外で何か良い方法をご存知の方、ご教示いただければと思います。
424:デフォルトの名無しさん
08/01/08 19:10:19
WinInet経由でいいなら、GetUrlCacheEntryInfoでキャッシュの情報が取れる。
425:423
08/01/09 09:59:39
>>424
これで何とかなりそうです。
すばらしい情報をありがとうございました。
426:デフォルトの名無しさん
08/01/13 23:43:43
プロキシ設定を自分のIEコンポーネントだけ別にすることはできますか?
InternetSetOption(NULL,.... )だとシステム全体に影響が及んでしまうので、
hInternetを指定して制限をかければいいのだと思いますが
コンポーネントが利用中のhInternetを知る方法が無いので困っています
427:デフォルトの名無しさん
08/01/14 18:45:46
>>426
私のソースにはこんなのがありました:
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, pInfo,sizeof(INTERNET_PROXY_INFO),0);
これで動いてたような気がするけど、何年も前のブツなので要検証。
428:デフォルトの名無しさん
08/01/17 15:01:00
IEコンポーネントを表示せずに、NavigateやDownloadCompleteを使って、
データの取得を行うことは可能なのでしょうか?
429:デフォルトの名無しさん
08/01/17 15:27:09
可能です
430:デフォルトの名無しさん
08/01/17 15:33:44
どうも有り難うございます。
う~ん、すると、Windowsサービス化も可能なんでしょうか?
System.Windows.Forms派生のクラスをnewした時点で、
変なことになっちゃうんでしょうか?
Windowsサービスは作ったことないので想像もつかないのですが、
通常、UIはサービスを持てないのですよね?
デスクトップとの対話をサービスに許可、とか設定せずに、
普通のデーモン的なデータ取得を行えると、だいぶ方向性が広がるのですが。
431:デフォルトの名無しさん
08/01/17 15:36:02
ううっ、下記の部分、逆でした。
>通常、UIはサービスを持てないのですよね?
Windowsサービスは、普通はUIを持てないのですよね。
ユーザがログインしない状況でも、IEコンポーネントでデータ取得を
行えると嬉しいのですが。
432:デフォルトの名無しさん
08/01/17 21:18:39
それはIEコンポでなければならないのか?
433:デフォルトの名無しさん
08/01/18 09:07:26
う~ん、取得したDOMを操作して、色々処理するので、
結局、何らかのブラウザエンジンは必要になるのです。
まぁ、ゲッコーとかに乗り換えるっていう手はあるのでしょうが、
IEコンポーネントを頑張って使い続けるか、
オープンソースのブラウザエンジンから不要なところをばっさり切って
使うかは、今後の大きな課題にはなるのですが‥‥。
434:デフォルトの名無しさん
08/01/18 18:48:48
>>430
そういうことは、人に聞くより自分で試したほうが早いぞ。
435:デフォルトの名無しさん
08/01/19 12:12:52
質問があります
IEではTAB、SHIFT+TABキーでフォーカスの移動が行われますが、
これを外部から行うにはどうすればいいでしょうか
TABキーイベントを送る、というのはナシの方向で・・・
436:デフォルトの名無しさん
08/01/19 19:45:22
SetFocus
437:デフォルトの名無しさん
08/01/20 03:11:38
IEのフォーム部品はウィンドウを持ってないからSetFocusは役に立たない
438:デフォルトの名無しさん
08/01/20 04:34:22
IHTMLDocument2::all、
IHTMLDocument2::activeElement、
IHTMLElement2::focus
439:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/20 10:16:18
>>436-438
ありがとうございます!
試してみます!
ダイアログのように一発でやる方法があるかとさがしておりました!
442:デフォルトの名無しさん
08/01/20 10:30:21
"DOCHOSTUIFLAG_NO3DOUTERBORDER" が定義されていない…
mshtmhst.h内で定義されてるはずのものなのか、それ以外のどこかなのかは
判らんが、とにかく無い。
443:デフォルトの名無しさん
08/01/20 10:47:47
うちのMsHtmHst.hタンには定義されてるよ
444:デフォルトの名無しさん
08/01/20 10:49:20
よし、Platform SDK落として、中のmshtmhst.hをMinGWのincludeに突っ込んだら出来た。
445:デフォルトの名無しさん
08/01/23 23:59:25
すみません教えてください
取得したpElementがインラインフレームか
普通のフレームかを判定したいのですが
良い方法はあります?
446:デフォルトの名無しさん
08/01/24 00:28:36
tagName見るなりIHTMLIFrameElement取得してみるなりでいいんじゃね
447:デフォルトの名無しさん
08/01/24 01:07:54
>>446
ありがとうございます
これをヒントに調べてみます
448:デフォルトの名無しさん
08/01/31 10:55:56
ho
449:デフォルトの名無しさん
08/01/31 13:00:15
IInternetProtocol::Start()でゴニョゴニョするコードを書いているんだが、
呼び出し元のIWebBrowser2を取得することって出来ないのかな。
複数ウィンドウのブラウザで、IWebBrowser2が複数存在しているので、
グローバル変数では解決出来ない。
スレッドが分かれているわけでもないのでTLSでも解決できない。
450:デフォルトの名無しさん
08/01/31 16:02:17
>>449
IWindowForBindingUIでググれ
451:デフォルトの名無しさん
08/02/09 01:17:35
すみません 教えてください
過去ログで見た気もしますが 見つけられなくて・・・
get_innerHTMLでHTMLソースを取った場合はIEが有る程度整形して
ますが これを メニュー → 表示 → ソースで
表示されるようにオリジナルの大文字・小文字もある状態で
取りたいのですが可能でしょうか?
452:デフォルトの名無しさん
08/02/09 02:09:13
kanou
453:451
08/02/09 02:27:55
>>452
すみません 困っています
もし よろしければ教えていただけないでしょうか?
454:デフォルトの名無しさん
08/02/09 23:24:16
MFCでURLジャンプ時のスクリプトエラー非表示はどうすればいいですか?
IOleCommandTarget::Execで
OLECMDID_SHOWSCRIPTERRORを使うのでしたら、
どのように使うのか教えていただきたいです。
【関連事項】
AtlhostEx.h
ScriptErrorCommandTargetImpl.h
DialogKiller.h
455:デフォルトの名無しさん
08/02/10 00:54:23
今日のメニューについて
URLリンク(zoomtv.atspace.com)
456:デフォルトの名無しさん
08/02/12 13:40:22
CreateWindow("AtlAxWin", "Shell.Explorer.2"・・・
としたときにsubmitやクリックできますか
457:デフォルトの名無しさん
08/02/27 13:53:42
IE7になってマウスの真ん中ボタンで新しいウインドウで
開くようになったんですが、IEコンポーネントを使った
あぷりでは、これは自分で書くしかないんでしょうか?
それとも簡単に有効にする方法があるんですか?
知っている方いましたら教えてください。
458:デフォルトの名無しさん
08/02/27 14:41:58
IEはIEコンポーネントを使ってるだけで、
真ん中ボタンクリックで新規ウィンドウはIEに実装されただけのもの。
IEコンポーネント自体にそういう機能があるわけではない。
459:デフォルトの名無しさん
08/02/27 14:48:16
>>458
ありがとう。
ということは自分でやるしかないんですね。
かなり大変そうですけど・・
460:デフォルトの名無しさん
08/02/27 15:53:19
>>459
おいおい、ボタン押してウィンドウ開くなんて大した手間じゃないだろう
461:デフォルトの名無しさん
08/02/27 17:46:36
>>456
AtlAxGetControl
AtlAxGetHost
>>460
新しいウィンドウで開くとなると結構処理が必要じゃない?
462:デフォルトの名無しさん
08/02/28 11:28:49
大抵のダブブラウザは実装してる
463:デフォルトの名無しさん
08/03/01 04:18:40
ATL使わずにIWebBrowser2のイベントを取得したいんだけど、
どういうコード書けばいいのか参考になるサイトとかないですか
探し方が悪いのかATLなコードしか見つからないんです。
464:デフォルトの名無しさん
08/03/01 04:27:15
そんな事できるのか・・・
465:デフォルトの名無しさん
08/03/01 05:01:32
>>463
DWebBrowserEvents2のこと? だったら普通にOLEコントロール扱うようにすればいけるんじゃね?
まあMFCとかATLとか使わずにやろうとすると死ぬほど面倒らしいが。
466:デフォルトの名無しさん
08/03/01 06:19:08
>>465
うん、DWebBrowserEvents2。
WindowsMobile版のIEコンポーネントを使ってるんだけど、
ATLでの実装がコンパイル通らなくて、
ATLなしでの実装にするか・・・?ってとこにたどり着いたとこ。
死ぬほど面倒ならATLが通る方法調べるほうが楽かなぁ。。
467:デフォルトの名無しさん
08/03/01 06:20:39
コンパイラはなに?
468:デフォルトの名無しさん
08/03/01 06:29:49
VS2005Pro、C++でやってる
469:デフォルトの名無しさん
08/03/01 08:03:29
コンパイルエラーの内容を書いた方がいいのでは。
あと接続ポイント周りをちゃんと理解すると光が見えるかも。
470:デフォルトの名無しさん
08/03/01 10:10:11
>>466
Essential COMに載ってるよ。ネストクラスしたりとかなり面倒だったけど
ATLなし(Win32SDKのみ)でイベント取得までは確認できた。
471:デフォルトの名無しさん
08/03/01 10:50:34
VC++あるなら、CHtmlViewのソースでも見るとか。CHtmlViewが使えるならそれ使うに越したことはないと思うが。
472:デフォルトの名無しさん
08/04/17 02:59:40
IEコンポーネントのJavaScriptを一括で
無効にする方法ってありますか?
473:デフォルトの名無しさん
08/04/17 22:50:05
あるんじゃないの?
俺はやったことないけど、使っているブラウザ (Donut RAPT)が
ボタン1つでオンオフできる機能を持っている。
474:デフォルトの名無しさん
08/04/24 20:30:33
表示してるページで右クリックメニューに追加した「irvineにすべてのURLを送る」みたいのを
自動で実行するのはどうしたらできますか?
475:デフォルトの名無しさん
08/04/27 02:08:05
MFCで組んでるんですが、いろんなサイトを見ていくと使用メモリが増える一方。
メモリリークしていると思ったほうがいいのでしょうか?
それとも履歴蓄積によるものと考えてしまっていいのでしょうか?
476:デフォルトの名無しさん
08/04/27 02:28:31
>>475
メモリリークっていうか、開放し忘れじゃね?
よくあるみたいだよ。
477:デフォルトの名無しさん
08/04/27 03:49:52
IEコンポーネントを使うとそうなるって問題もあったはず。
一旦アプリを最小化すると開放されたようになる。
本当にリークしてるのか、本当に開放されてるのか、分からないけどね。
478:デフォルトの名無しさん
08/04/27 12:15:51
>>477
最小化すると減るのはワーキングセットの量。
479:デフォルトの名無しさん
08/04/29 08:38:59
タスクマネージャーとかで見る使用メモリが増えていくからといって
メモリリークしてるとは限らない。
URLリンク(kkkon.hp.infoseek.co.jp)
この辺参考にしてみるといいかもね。
480:デフォルトの名無しさん
08/05/08 17:50:12
なんかFlash関係が動かなかったりするね。
481:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/09 02:27:06
IEコンポーネントでHTML内に記述されたJavascriptの関数を実行したいのですが、
可能でしょうか?HTMLは自分で用意したものです。
483:デフォルトの名無しさん
08/05/09 20:27:54
>>482
できるよ。
スクリプトを動的に追加することができるから追加したコードで静的なコードを実行すればいい。
HTMLを自分で用意するんだったらIEコンポーネントでやる用途が想像できないけど?
484:デフォルトの名無しさん
08/05/10 04:39:22
>>483
URLリンク(homepage3.nifty.com)
このページの情報を参考にして実装する事ができました。
では逆にHTML側から、ブラウザ(アプリケーション)の関数を実行する事は可能でしょうか?
さすがに無理ですかね、それは・・・
485:デフォルトの名無しさん
08/05/10 06:30:53
>>484
window.external経由ならわりと楽勝で。
486:デフォルトの名無しさん
08/05/18 09:43:36
IE拡張(BrowserObjectHelper)からマイドキュメントフォルダにファイル書き込んでるんだけど
IE保護モードがじゃまして書き込めねぇ・・・
いくつかMSのサイト読んでレジストリいじったりしたが、相変わらず駄目だ
誰かやり方おしえて。
487:デフォルトの名無しさん
08/05/18 12:21:05
アウトプロセスのCOMサーバでも作ってデータ送って書き込ませれば?
488:デフォルトの名無しさん
08/05/19 09:31:02
それは最後の手にしたいな。
URLリンク(www.microsoft.com)
書き込み時に、ブローカープロセスの昇格ってのが出るようにできるっぽいけど、
ここにあるようにレジストリに書いたがうまくいかん。
489:デフォルトの名無しさん
08/05/19 09:37:46
ああ、COMサーバーのCLSIDを登録するってことなんだな、これは・・・
うう、めんどくせー
490:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/23 19:58:46
>>490
HTMLID_FINDでググれ
URLリンク(support.microsoft.com)
492:デフォルトの名無しさん
08/05/27 02:44:37
ダイアログに WebBrowser を 貼り付けて 表示しています。
その ページ内で window.close() を 呼んだら
ダイアログ自体を終了するようにしたいのですが、 WebBrowserEvents
のイベントを取得するような方法しかないのでしょうか?
493:デフォルトの名無しさん
08/06/07 17:33:24
ローカルにある js ファイル ページ表示後に実行したいので、
DWebBrowserEvents の Document Complete 後に
Document に script タグを追加しようとしているのですが、
追加されません。
このやり方だとだめなのでしょうか?
どこかにサンプルがあったりしますか?
494:デフォルトの名無しさん
08/06/13 19:11:21
Win32APIすれから来ました
HTMLを解析したいのでIHTMLDocument2を使おうと思っています
CComPtr<IHTMLDocument2> aDoc;
aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT);
aDoc->put_URL(CComBSTR("URLリンク(~)")); //URLの読み込み(のつもり)
aDoc->get_images()
この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。
まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。
コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
495:デフォルトの名無しさん
08/06/13 19:23:39
>>494
ここにサンプルがあったよ
URLリンク(d.hatena.ne.jp)
496:デフォルトの名無しさん
08/07/23 00:24:40
IWebBrowser2から作ったIEコンポーネントで、フラッシュゲームのページでゲームのキー入力が
効きません助けてください!
IOleInPlaceActiveObject::TranslateAcceleratorもメッセージループ内に入っています!
497:デフォルトの名無しさん
08/07/23 09:21:35
そういや俺もニコニコとかのフラッシュ使ったページでキー入力効かなかったことがあったな。
どうやって解決したか思い出したら書き込むよ。
498:デフォルトの名無しさん
08/07/23 11:55:03
質問です。
戻る、進むことが出来るか否かを判断するにはどうすればいいんですか?
IWebBrower2のメソッドにそれらしき関数が見当たらなかったんだけど
499:デフォルトの名無しさん
08/07/23 20:05:14
DWebBrowserEvents2のCommandStateChangeかなにか
500:デフォルトの名無しさん
08/07/24 18:42:51
>>499
遅レスですがありがとうございました!
501:デフォルトの名無しさん
08/07/24 20:13:24
VC+ATLでタブブラウザっぽいものを作っています。
DWebBrowserEvents2のDISPID_NEWWINDOW2イベントで、
新しく開く遷移先のアドレスを知るためにはどうしたらいいんですか?
OnNewWindow2のハンドラでIEが立ち上がるのをキャンセルするまでは分かったんで巣が。。
Donutのソースみたけどいまいち分かりませんでした・・・
502:デフォルトの名無しさん
08/07/25 19:21:06
NewWindow3にしちゃうのは?
503:デフォルトの名無しさん
08/07/28 14:53:44
WSH/VBScriptからNewWindow?でcancelできない?
504:デフォルトの名無しさん
08/08/08 20:08:34
IE6が入っているPCでは問題なく動作しているプログラムが
IE7が入っているPCで正しい動作をしてくれません。
URLリンク(www.nitoyon.com)
このサイトを参考にC++(VC++)でIEコンポーネントを呼び出しています。
調べてみると、どうやらIE7でNavigate2を呼び出すと
正しくページに移動できないみたいですね。
色々調べてみたんですけど、VC++でのIEコンポーネントの使用で
IE7に対応させるような方法が分かりません。
IE7環境でVC++からIEコンポーネントを呼び出して
正しくページ移動できるようなプログラムは可能でしょうか。
505:デフォルトの名無しさん
08/08/09 16:49:59
しらんけど↓でなんとかならんかのお
Microsoft Web Browserコントロールのセキュリティを制御する:CodeZine
506:デフォルトの名無しさん
08/08/09 18:40:03
ページから移動するんじゃなくて、ページごとに作り直すといいんじゃない?
507:デフォルトの名無しさん
08/08/27 22:13:09
>>504
AtlAxCreateControlExを使用した方法だとうまくいきますよ。
508:507
08/08/27 22:19:03
>>504の詳細を聞かずにレスしたので、思っているのとは違う結果になるかもしれない。
補足すると、タブを使用しない。キオスク端末見たいなことをやりたければ、
AtlAxCreateControlExを使用した方法で作れます。
509:デフォルトの名無しさん
08/08/31 16:14:38
IE7でアクティブなタブがshellwindowsのどれか、わかりますか?
510:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/21 12:02:52
>>510
厳密に調査したわけではないが、アクセスタイミングによるものだと思う。
windowオブジェクトは、初期状態で存在しているため、
直にアクセスできるのだと思われる。
全てのイベントを拾って、ポーリングすればアクセスできるタイミングが分かるはず。
試しに html側 head内にてvar i=1000を定義、body onloadにて、
iを初期値と比較して結果を出す関数を作成。
全てのイベントを拾って、GetDispID( 変数名, fdexNameCaseInsensitive, &dispID )
を実行して、DISPID_UNKNOWN != dispIDが成立したら関数InvokeExにて値を変更したら
onload関数の結果が変わるのを確認した。
512:デフォルトの名無しさん
08/09/26 12:43:09
javaのwin32oleでブラウザ作ってるんですが
表示中のHTMLの任意のタグの内容を取る方法って何ですかね?
例えばクリック→srcElement取得ってどうやったらいいのか・・・。
513:デフォルトの名無しさん
08/09/27 01:17:13
win32oleを使用したことが無いので詳しくは分からないが、IHTMLDocument2のI/Fが取れれば、
メンバ関数elementFromPointでできると思う。
514:デフォルトの名無しさん
08/09/27 22:09:26
IE7 + Vista + 保護モードだと、BHOからファイル書き込みが
所定のパスにできないですよね。
これを解決しようと奮起してます。
ファイル書き込み部分をCOM化しようとしてるんですが、
どうにもうまくいきません。
URLリンク(msdn.microsoft.com)
ここを読んだんですけど、
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
08/09/27 22:11:01
ファイル書き込みのCOMはBHOと同じDLLに含まれてます。
ファイル書き込みのCOMを別のEXEサーバーにおいて、
BHOから呼び出したんですが、COM生成はできても、
ちょっとするとEXEサーバーから勝手に切断されてしまいます。
どうしていいのか、さっぱりわかりません・・・
516:512
08/09/30 09:54:56
>>513
ありがとうございます
やってみます
517:hiro
08/10/08 14:47:16
こんにちは。
URLリンク(www.nitoyon.com)
のサンプルコードを落として VS.net 2003 Standardで
開いてビルド実行、アドレスバーに打ち込んでGOを押しても
メッセージが出て(atlcomcli.h Line148)で
実行時にエラーになります。
comは初心者でよく分かりません。
どなたか対処法をご存知ないでしょうか?
どうかよろしくお願いします。
518:デフォルトの名無しさん
08/10/08 17:40:03
>>517
そこの「VC++.NETでの注意点」ってとこ読んだか?
519:hiro
08/10/08 18:50:31
はい、読みました。
昔会社でやってた頃、VC6.0のときは作動できたのですが、
なぜか自宅のVC++.net 2003 Standardではエラーが出るのです。
520:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/11 22:58:55
html 関連の質問です。
VC++ 2005、WinXPでプログラムを組んでいますが、あるhtmlファイルからanchorタグを読み込み、リンク先のページを取得したいと思います。
一々、自作のライブラリでリンク先を検出するようだと、作成時間がかかって仕方ないので、どなたか、htmlをパースしてリンク先のアドレスを取得できるような
ライブラリや関数などをご存知の方、教えていただけないでしょうか?
----
c++相談室から誘導されてきました。
よろしくお願いします。
522:デフォルトの名無しさん
08/10/11 23:10:07
その程度の用途でIEコンポーネントなんか使ったら余計時間かかる気がするが。
正規表現かなんかで抽出したほうがはやくね?
523:デフォルトの名無しさん
08/10/11 23:18:16
マジっすか……
正規表現だとboost辺りかな……
とりあえず、boost使ってみることにします。
どうもありがとうございました
524:デフォルトの名無しさん
08/10/12 13:17:44
BHOを作ってるのだが、
VSのプロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド
にiexplorer.exeのパス書いて、デバッグ実行すると、
IEが起動して自動的にアタッチしてくれる。
それはいいんだが、なぜかそうやって起動するとIE7+Vistaでの保護モードが無効になってしまう。
その状態でインターネットオプション見ても保護モードにチェックは入ってるのに。
普通にIE起動したら保護モード。
誰か理由説明できる人いる?
525:デフォルトの名無しさん
08/10/12 14:12:10
その状態で2ch見ても保護モードにならんの?
526:デフォルトの名無しさん
08/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
参考サイトはこの辺 URLリンク(msdn.microsoft.com)(VS.85).aspx
527:デフォルトの名無しさん
08/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:もう見てないよな?
08/11/14 23:05:07
>>523
> マジっすか……
> 正規表現だとboost辺りかな……
>
VCならRegExpをCOM経由で使えば正規表現がつかえるらしい
VCで正規表現 (要IE5.5以上)
URLリンク(page.freett.com)
「IE5.5以上」なんで条件を満たしていないWindowなんてあるの?
529:デフォルトの名無しさん
08/11/14 23:33:38
素のWindows2000
530:デフォルトの名無しさん
08/11/15 18:48:42
RegExpはVBScript 5.0だろ
IE5.0だろ
素のWindows2000だろ
531:デフォルトの名無しさん
08/11/15 21:27:32
鬼車使っとけ
532:デフォルトの名無しさん
08/11/20 10:06:31
IDocHostUIHandlerを実装したクラスを適用させるにはどうすりゃいいんでしょうか?
NavigateComplete2でSetUIHandlerはイクないみたいなことが色々書いてありますし、
それでは初めてのNavigateの時にはXPスタイルを適用できないみたいですし・・・
GWL_USERDATAをGetWindowLongでIAxWinHostWindowを取得してSetExternalUIHandlerでも出来ないことも無いですが、
D&Dが使えなくなるっぽいなのでこちらもだめみたいです
533:デフォルトの名無しさん
08/11/20 10:55:09
MFCのソースでも見ればいいんじゃね? Platform SDKに入ってなかったか。
534:532
08/11/20 11:41:01
MFCの環境が無いので見れません
ごめんなさい
535:デフォルトの名無しさん
08/11/20 11:57:27
>>534
>>533は「無償配布されてるPlatform SDKを入れてみろ」って言ってるんだと。
536:デフォルトの名無しさん
08/11/20 12:06:41
>>535
Platform SDKは既に入れてありますが、MFCのソースはどこにありますでしょうか?
mfcディレクトリにはヘッダしか見受けられませんが・・・
537:デフォルトの名無しさん
08/11/20 13:02:22
src\mfcにないならないんじゃない?
538:532
08/11/20 13:23:30
src\mfcを検索してみましたが、IDocHostUIHandlerの記述はないようです
本題に戻って、お願いします
539:デフォルトの名無しさん
08/11/20 16:57:23
>>538
URLリンク(msdn.microsoft.com)
540:532
08/11/20 17:24:56
>>539
こんな方法で出来るとは・・・
神様ありがとうございます
541:sdaf
08/11/26 16:16:56
adsf
542:デフォルトの名無しさん
09/01/08 18:22:37
ie7でShellWindowsの中からactiveなものを見つけることはできないっすか?
543:デフォルトの名無しさん
09/01/11 15:33:39
MFC(VC++6.0)のCHtmlViewで、右スクロールバーの「現在のスクロール位置」の取得
方法が分かる方はいらっしゃいますでしょうか?
いろいろ調べて、試してみたりしたのですが、どうしてもうまくいかないのです…
544:デフォルトの名無しさん
09/01/11 19:13:07
VS2008 MFCにてIEコンポーネントを使用して自動巡回ソフトを作りたいと
考えています。
IEコンポで指定のページまでは簡単に表示出来たのですが、
フォームに文字(ID/PASS)を入力したり、ボタンをクリックしたりする
のはどうやったらいいのでしょうか?
参考になるソースなどあるサイトなどあったら教えて下さい。
545:デフォルトの名無しさん
09/01/11 20:12:13
まあIHTMLDocument*あたりからDOM経由すればそういうことはできるが、
普通はそういう面倒なことはせずに直接自分でフォーム送信時に送られるリクエストを作成するだろうな。
546:デフォルトの名無しさん
09/01/16 23:22:51
>>517
亀だが「AtlAxWin」の部分をVSのVerにあわせてみては?
参考URL
URLリンク(fssblog.blog50.fc2.com)
547:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/18 13:55:20
>>546
>>517 じゃないけど助かりました!
550:デフォルトの名無しさん
09/03/16 02:31:52
そうか
551:デフォルトの名無しさん
09/03/22 02:24:55
IE8になって、IEコンポーネントを使って値を設定するときのセキュリティの変更があったようです
INPUT TYPE="FILE"
に設定するのに今までフォーカスを当ててからSendKeyを使っていたのですが、どうやら駄目になった模様・・・
解決方法はあるのでしょうか
552:デフォルトの名無しさん
09/03/22 21:29:34
知らんけどタイミングが合ってないだけじゃないのか?
553:デフォルトの名無しさん
09/03/23 10:21:37
能無しはけーん
554:デフォルトの名無しさん
09/03/23 22:46:49
それはそれは。。。がんばって!