IEコンポーネントを使い倒すスレ Ver.2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/04/16(日) 21:08:42IEコンポーネントを利用したブラウザのプログラミングに関する情報の交換及び再
利用を目的とした総合情報スレッドです。
=====================================
最近IEコンポーネントを利用してブラウザを作るプログラマが増えてきました。こ
れから自作してみようという人も多いでしょう。コンポーネントを貼り付けるだけ
なら誰でも出来ますが複雑な制御を行うにはそれなりの経験や知識が要るようです。
私自身が知りたいのも山々ですが、似たような質問が分散するのを避けるためにも
統一しましょう。ブラウザ作者、COM に精通した方大歓迎です。もちろん公開した
くない "禁断のテク" もあると思いますが、そこは各人の判断ということでお願い
します。
※ 開発言語は問わないことにしますので質問するときはその辺を踏まえてお願いし
ます。
(以上、前スレより)
IEコンポーネントを使い倒すスレ
http://pc5.2ch.net/test/read.cgi/tech/982930049/
かなり前のスレですが続編を立てました。
0002デフォルトの名無しさん
2006/04/16(日) 21:12:04http://pc5.2ch.net/tech/kako/982/982930049.html
0003デフォルトの名無しさん
2006/04/16(日) 21:22:42【OLE】オートメーション総合スレ【ActiveX】
http://pc8.2ch.net/test/read.cgi/tech/1137771139/l50
Win32API質問箱 Build42
http://pc8.2ch.net/test/read.cgi/tech/1144962549/l50
ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50
Donut開発情報交換スレ(DAT落ち)
http://pc8.2ch.net/test/read.cgi/tech/1096194187/l50
0004デフォルトの名無しさん
2006/04/17(月) 19:39:15FW2.0にはwebbrowserコントロールあるし、IEコンポーネントプログラミングなんてもう必要無いんじゃまいか?
0005デフォルトの名無しさん
2006/04/20(木) 15:52:560006デフォルトの名無しさん
2006/04/20(木) 16:48:53いやーごめんなさいでブッとばされて、それっきりになったんだっけ?
0007デフォルトの名無しさん
2006/04/28(金) 07:12:22>>1の英断に乾杯。
0008デフォルトの名無しさん
2006/04/28(金) 15:16:290009デフォルトの名無しさん
2006/04/28(金) 17:46:12だいじょぶなんでない?
テンプレ?に追加
わからないことがあったらとりあえずググっとけ
http://google.co.jp/
調べてるうちに英語のページが出てきても、
そこに書いてあるメソッドやらIDやらでググればいい
0010デフォルトの名無しさん
2006/05/07(日) 22:04:260011デフォルトの名無しさん
2006/05/11(木) 00:49:290012デフォルトの名無しさん
2006/05/13(土) 12:13:27プロセス内の変数(WinMainとかで宣言した変数)を、
IEコンポーネントの中のJavaScriptから参照することはできますでしょうか?
int main(void){
int count = 0; // ←例えばこういう変数をJavaScriptで直接参照したい
}
データの算出はC++で書いて、
そのデータの表示はHTML+JavaScriptでやりたい感じなのですが・・・。
0013デフォルトの名無しさん
2006/05/13(土) 17:30:19無理。
0014デフォルトの名無しさん
2006/05/13(土) 18:15:060015デフォルトの名無しさん
2006/05/13(土) 18:37:42やっぱりっすか。
変数の中身は動的に変化するものなので、
というか時間を管理する変数なので随時C++で更新かけつつ、
JavaScriptでアクセスして表示させたいのです。
Sleipnirでは、現在のアドレスバーとか検索バーの文字列を
取得するActiveXオブジェクトがあるので、そっちの路線で調べて見ます。
http://www.sleipnir-wiki.jp/index.php?Sleipnir.API%20%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9
0016デフォルトの名無しさん
2006/05/13(土) 20:27:320017デフォルトの名無しさん
2006/05/13(土) 21:07:59(倒さなくてもできるとは思うけど)
0018デフォルトの名無しさん
2006/05/13(土) 21:13:36できます。
0020デフォルトの名無しさん
2006/05/13(土) 22:40:310021デフォルトの名無しさん
2006/05/13(土) 22:45:51今手元に MSDN が無いのでなんとも言えないけど。
WEB 版は、変わっちゃったんだね。
002219
2006/05/14(日) 01:22:17http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1371&forum=7
0023デフォルトの名無しさん
2006/05/14(日) 01:57:20>プロセス内の変数(WinMainとかで宣言した変数)を、
>IEコンポーネントの中のJavaScriptから参照することはできますでしょうか?
横レスですが
IHTMLDocument::get_Script()とかいう話ではない?
ただ「JavaScriptから変数を参照する」というより
アプリ側から引数として渡すような形になるけど
頓珍漢なこといってたらごめん。
002422
2006/05/14(日) 08:58:57ScriptEngineが取得できれば、IActiveScript->AddNamedItemあたりで
アプリ側から名前付きオブジェクトを渡せるから行けるんではと思うけど、
にしても、17,18,20の回答(正解)が気になる…。
0025デフォルトの名無しさん
2006/05/14(日) 22:52:04WinXP SP2のIEで、ダウンロードが自動的に始まるページへ移動すると
"セキュリティ保護のため・・・"
と表示され、自動的にダウンロードが行われないようになっていますが、
IWebBrowserを使用したIEコンポーネントで同じような機能を実装するには
どうすれば良いのでしょうか?
よろしくお願いします。
0026デフォルトの名無しさん
2006/05/15(月) 19:41:35あくまでもたぶん。
002712
2006/05/15(月) 19:44:44お返事遅れてすいません。
IActiveScript->AddNamedItemで、スクリプトにCでのコード埋め込みができそうですね。
調べる限り、それをやるにはコードが相当複雑そうですが(^^;
ありがとうございました。
>>25
あっ、>>836だ。
0028デフォルトの名無しさん
2006/05/17(水) 18:25:230029デフォルトの名無しさん
2006/05/17(水) 20:22:500030デフォルトの名無しさん
2006/05/17(水) 20:23:330031デフォルトの名無しさん
2006/05/17(水) 22:42:570032デフォルトの名無しさん
2006/05/18(木) 12:05:04IE7b2はデフォルトでローカル(メモリやファイルシステムにある)なhtmlで
アクティブスクリプトを有効にしないようになってるからじゃ○マイカ。
0033デフォルトの名無しさん
2006/05/19(金) 02:27:19そうだったノカー(AA略)
サンクスコ!
0034デフォルトの名無しさん
2006/05/21(日) 14:48:53IE6sp2からそうじゃなかった?
0035デフォルトの名無しさん
2006/06/01(木) 19:54:500036デフォルトの名無しさん
2006/06/02(金) 00:08:110037デフォルトの名無しさん
2006/06/02(金) 00:20:11同士よー!
IDispatchってなによですぱっちって。なんなのよーこれなんなのよー
なんか、クラスインスタンスをクラスで表しちゃったようなインターフェース。って感じだと思う。
っていうか、俺もIDispatchについて聞きたいんだけどここじゃスレ違い?
0038デフォルトの名無しさん
2006/06/02(金) 00:27:50はじめVBで探していたのですが、もっと適切なスレがあったので
すいませんが、質問させてください。
サーバと通信するクライアントを作成するのに
WebBrowserControl(Maicrosoft Web Browser)(正しくはTridentらしい)を
利用してやり取りしようとしています。
入力したデータをdoPostで送っているだけなのですが、
サーバ側で見るとdoGetとdoPostの両方で来ています。
漏れの認識では少しのデータを送るときdoGet
大量のデータを送るときdoPostをりようしていると思っています。
なんで、doPostだけで送ってくれないのかわかりません。
WebBrowserControlのAPIとかどこかにないでしょうか教えてください。
後、HttpのdoPost、doGetの違いをわかりやすく詳しく説明しているサイト等を
教えていただけないでしょうか?
0039デフォルトの名無しさん
2006/06/02(金) 00:28:27ヘルプみろよ。
0040デフォルトの名無しさん
2006/06/12(月) 00:33:54DISPID_AMBIENT_DLCONTROLの拾い方がわかりません。
IWebBrowser2からIOleClientSiteを得ればよいのかな?
004140
2006/06/17(土) 01:33:43IEでWordやExcelが開けるんだから、IEもIOleClientSiteを持ってるはずなんだが、
IWebBrowser2からどうやって取得したらよいのかわからない。
IWebBrowser2でQueryInterfaceかましてもNULLだった。
0042デフォルトの名無しさん
2006/06/17(土) 02:46:29Navigate2まわりでアクセス違反で落ちるようになった
0043デフォルトの名無しさん
2006/06/17(土) 10:16:370044デフォルトの名無しさん
2006/06/17(土) 11:21:11get_allでIHTMLElementCollectionを取得して、一個一個ループでまわしてタグ名を見ていくしかないのでしょうか?
IHTMLDocument3にgetElementsByTagNameというものがあったのですが、できればIHTMLDocument3は使いたくないです。
004540
2006/06/17(土) 12:45:43ActiveDocumentを貼り付けられるものは
IOleClientSiteを持ってると思うんだけど。
Word、Excelも当然もってるし、IEも持ってるはず。
全部ActiveDocumentを開けるから。
004644
2006/06/17(土) 23:31:17IHTMLElementCollectionに、itemというメソッドがあって、
タグ名をもとにタグ情報を取得できそうなので解決しそうです。
失礼しました。
0047デフォルトの名無しさん
2006/06/24(土) 18:19:480048デフォルトの名無しさん
2006/06/24(土) 18:48:010049デフォルトの名無しさん
2006/06/24(土) 19:07:050050デフォルトの名無しさん
2006/06/24(土) 22:42:56DWebBrowserEvents2で色々やってみれ
0052デフォルトの名無しさん
2006/06/26(月) 13:55:19IEとかIE_とかにしてくれよ。
0053デフォルトの名無しさん
2006/06/26(月) 14:40:42InterfaceのIだろ。
MFCなんかでクラス名がCナントカになっているのと同じ。
0054デフォルトの名無しさん
2006/06/26(月) 18:23:46タブブラウザでソースコードを公開している奴って
ありますか?
0055デフォルトの名無しさん
2006/06/26(月) 19:18:450056デフォルトの名無しさん
2006/06/26(月) 20:15:00白抜き文字とかも真っ黒
0057デフォルトの名無しさん
2006/06/26(月) 23:10:54IWebBrowserNからDWebBrowserEvents2とか使わず、
IDispatch::Invokeでイベント取得できたってことですか?
おしえてホスィ。
DocumentCompleteが通知されてほしい。
005812
2006/06/26(月) 23:18:21IHTMLDocumentのget_Scriptで得たIDispatchからQueryInterfaceで、
IDispatchExを取得してInvokeEx呼び出せばいいみたいです。説明わかりにく。
IEコンポーネントからIActiveScriptを得るのはたぶん無理っぽいです。
IDispatchExからプロパティを追加する方法しかないっぽいです。
参考資料 → http://www.codeproject.com/com/dispexsinkconnector.asp
これ調べるの結構かかったなぁ
0059デフォルトの名無しさん
2006/06/26(月) 23:22:07CXxxxx → Concrete?またはClass?
DXxxxx → Dってなによ
0060デフォルトの名無しさん
2006/06/27(火) 15:42:37dispinterface
0061デフォルトの名無しさん
2006/06/27(火) 17:40:40さすがにコンクリートはないと思うが
0062デフォルトの名無しさん
2006/06/27(火) 19:56:47006359
2006/06/27(火) 22:31:58AfxXxxx → MFCのもの
CXxxxxはclassのCっぽいね。
0064デフォルトの名無しさん
2006/06/28(水) 21:55:54CreateWindowExってことはATLのIEコンポ?
よく調べてないけどDestroyWindowでおk(適当
0065デフォルトの名無しさん
2006/06/29(木) 16:44:23006757
2006/06/30(金) 13:15:49いや、俺がよく見てなかったのが悪かったわ。
>実はHtmlイベントの受信がしたかったわけですが、
と書いてあるのを思いっきり見落としてた。
0068デフォルトの名無しさん
2006/07/02(日) 01:38:07IEコンポーネント内のテキストをマウスカーソルで
選択できなくするような方法をご存知ないでしょうか?
0069デフォルトの名無しさん
2006/07/03(月) 03:51:40http://www.iwate-np.co.jp/news/y2006/m07/d02/NippoNews_11.html
0070デフォルトの名無しさん
2006/07/03(月) 10:32:53オオオおおお。まさにやりたいことです。ありがとうございます。
document.onmousedown = new Function("return false");
↑これやったらボタンも押せなくなるのかと思ってましたけどできるんですね
0071デフォルトの名無しさん
2006/07/05(水) 14:24:56DWebBrowserEvents2とか見ましたが見当たりませんでした…。
0072デフォルトの名無しさん
2006/07/07(金) 19:08:31そのリンクのIHTMLAnchorElementを取得するにはどうすればいいすか?
0073デフォルトの名無しさん
2006/07/10(月) 12:06:110074デフォルトの名無しさん
2006/07/14(金) 00:23:42IEコンポーネントでIHTMLDOMNodeを使おうとしたのですが
error C2065: 'IHTMLDOMNode' : undeclared identifier
と定義不明といわれて怒られます。
MSDNを見る限り、Mshtml.hをインクルードし
IE5以上なら使えると書いてあります。
なぜ私の所ではダメなのでしょうか?
Windows2000SP6+VisualStudio6.0+IE6です。
よろしくお願いいたします。
0075デフォルトの名無しさん
2006/07/14(金) 11:39:39実際に俺の環境ではVS.NET2003とVS6.0を入れてるけど、6.0にはIHTMLDOMNodeのクラス定義がないね。
VS6.0の最新のサービスパック入れたらなおるか、.NET買うかしないと。
0076デフォルトの名無しさん
2006/07/14(金) 20:42:38IE7の日本語ベータ3をインストールしたら、InternetOpenUrlにシフトJIS
のファイル名を使っているプログラムがエラーを起こすようになりました。
β版だからといえばそれまでですが、何か情報を持ちの方、または
対処方法、ご存知であればお教えください。
補足として、
・IE6以前とIE7ベータの英語版では問題なかった。
・IE7日本語β3からアドレスバーにS-JIS日本語名を含むURLを直接入れた場合は読み出せる。
・InternetOpenUrlでエラーが起きたとき、サーバーのログを見ると、日本語に該当する部分が
著しく欠損した状態(文字化けとか言うレベルじゃなく)でアクセスされている模様…。
よろしくお願い致します。(日本語のUrlを使うなというのは横へ置いておいて…)
0077デフォルトの名無しさん
2006/07/14(金) 21:06:100078デフォルトの名無しさん
2006/07/14(金) 21:49:35InternetOpenUrlWだとどうなる?
007976
2006/07/14(金) 22:19:03プログラムがANSIなのでW版はちょっと試していませんが、
ひとまず自分でURLの漢字部分をutf8エンコードして回避しました。
どうもありがとうございました。
008074
2006/07/14(金) 22:33:46.NETではIHTMLDOMNodeは使えるみたいですね。
あとVS6.0のSP6をインストールしてみましたが使えませんでした。
やはり.NETを買うしかないみたいですね。
ありがとうございました
008176
2006/07/14(金) 22:33:46W版を試してみたところ、InternetOpenUrlWだと何も考えなく
てもうまく行きました。
自分で%E7……て変換しなくてもやってくれるようです。
重ねてありがとうございました。
……自分で変換したさっきの苦労はorz
0082デフォルトの名無しさん
2006/07/14(金) 22:56:210083デフォルトの名無しさん
2006/07/15(土) 21:25:02XMLデータをメモリから設定すると、HTMLとして表示されてしまうのですが、
設定するデータの属性を設定する方法があるのでしょうか?
現在は、一度「.xml」な一時ファイルを吐き出してそれを読み込ませる方法にしています。
0084デフォルトの名無しさん
2006/07/15(土) 22:33:110086デフォルトの名無しさん
2006/07/18(火) 03:06:57ユーザエージェントを変更したいのですが、変更されません。
設定するタイミングがあるのかと、いろんな箇所で入れて、
UrlMkGetSessionOptionで取得すると取得される値では変更はされているようでしたが
printenv.cgiなどでみると変更されていません。
分かる方いますでしょうか?
008786
2006/07/18(火) 03:12:59UrlMkSetSessionOptionは、Javascriptのnavigator.userAgentを変更する関数で、
HTTPプロトコル上のUser-Agentヘッダーオプションは変更しない・・?
0088デフォルトの名無しさん
2006/07/18(火) 04:43:57008986
2006/07/18(火) 05:21:24確認君でも見ましたが、変更されていませんでしたが・・・。IE7 XPPro SP2です。
お詳しいようなので、いまさらな質問ですが、
UrlMkSessionOptionは、プログラム内で一度実行したらそれでいいのでしょうか?
実行するタイミング(たとえば、コンポーネントを起動後など)などありますか?
0090デフォルトの名無しさん
2006/07/18(火) 14:03:25ただ、こっちはなぜか実行時1回こっきりしか変えられないんだよなぁ・・・。
0091デフォルトの名無しさん
2006/07/21(金) 03:39:22書いているのですが、formのsubmitで、詰まっています。
環境は、XPsp2、IE7β2です。
言語はC#。
ソースはこんな感じ。
IEnumerator forme = myDocument.forms.GetEnumerator();
forme.MoveNext();
mshtml.HTMLFormElement form = (mshtml.HTMLFormElement)forme.Current;
form.submit();
nextProcess();
submitを行い、画面遷移が完了したところで、次の処理(nextProcess())を行いたいのですが、
上記の方法では、次の処理が終わってから画面遷移をしてしまいます。
間で
form.submit();
while(axWebBrowser1.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE);
nextProcess();
とかしても、ステータス判定のところで無限ループが発生してしまい、お手上げです。
どなたか、ご教示ください・・・。
0092デフォルトの名無しさん
2006/07/21(金) 11:48:530093デフォルトの名無しさん
2006/07/21(金) 20:36:20そのHPの中でFocus()をしていて、そのHPをプログラム側で読み込むと
表示しているアプリを前面に持っていってしまいます。
(何回もそのHPを更新をするのでその都度前面に来るとかなり鬱陶しいです。)
何とかこれを回避したいのですが何か良い方法はありませんでしょうか?
Win2000+VC6.0+IE6です。よろしくお願いいたします。
0094デフォルトの名無しさん
2006/07/23(日) 07:46:18IHTMLDocument2::elementFromPoint
0095デフォルトの名無しさん
2006/07/23(日) 20:58:42::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
を文字列で渡す場合、
IE6(XP sp2) だと正常に動作するのに、IE7(Vista β2)だと
「保護されているメモリに読み取りまたは書き込み操作を行おうとしました……」
ってエラーがでるんですが
なんとかなりませんかね?
0096デフォルトの名無しさん
2006/07/24(月) 00:17:00.zipファイル等のリンクをクリックしてダウンロードする際の保存先のパスや、
ファイル名指定ダイアログでキャンセルした等の情報は取れないんでしょうか?
0097デフォルトの名無しさん
2006/07/24(月) 23:59:32DocumentComplete時に初期設定JavaScriptを実行するようにしたいのです。
>>93
荒業で以下のJavaScriptを実行する手もある。
window.focus = function(){ return false; }
009897
2006/07/25(火) 00:00:340099デフォルトの名無しさん
2006/07/25(火) 01:09:45foreach (HtmlElement link in links)
とかやってるのですが、linkのなかに含まれる
URLだけを拾うにはどうしたらいいでしょうか?
環境は.net2です。
0100デフォルトの名無しさん
2006/07/25(火) 04:44:03get_href
0101デフォルトの名無しさん
2006/07/25(火) 14:17:33>>58のリンク先に載ってる。
だけどVC.NET2003だとサンプル動かないし、COMよくわからないから死にそう。
010297=58
2006/07/25(火) 15:14:55>>58は俺です(笑。 >>58はJavaScriptのロジックと、C++のロジックを結びつける方法ですね。
>>97の質問は自作IEコンポでどんなページを開いても、開いた最初にinit.jsなどの初期設定JavaScriptを実行したいのです。
>だけどVC.NET2003だとサンプル動かないし、COMよくわからないから死にそう。
サンプル動かなかった?コンパイルは通るけど、なんか赤ばってんのダイアログがでる、
っていう問題だったらキャンセルだか無視ボタンだかを押し続けたら動いたような気がしたけど。
まあ、サンプル動いてもあのソースめちゃくちゃ長いし複雑だったから解析大変だけどね。
JavaScriptのロジックにC++のロジックを埋め込む方法が知りたいのなら軽く解説しますよ。
>>58のリンク先にあるイベントを埋め込む方法は最終的にはわからなかったけど。
010397
2006/07/25(火) 15:25:15IHTMLWindow2のexecScript使えばいいのね…。
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/window2/window2.asp
http://www.ultrasync.net/yofune/?Prog%2FWin32%2FIE%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8#rab3bb29
010499
2006/07/25(火) 22:44:41レスありがとうございました。
IHTMLDocument2 links = (IHTMLDocument2)webBrowser1.Document.DomDocument;
string temp = "";
IHTMLAnchorElement link;
foreach (IHTMLElement lin in links.links)
{
if (lin.tagName.ToLower().Equals("a"))
{
link = (IHTMLAnchorElement)lin;
temp = link.href;
}
}
みたいな感じにしました。
010593
2006/07/26(水) 18:39:05レスありがとうございます。
CComQIPtr<IHTMLWindow2> pHW2;
pDoc->get_parentWindow(&pHW2);
BOOL ret = pHW2->execScript(L"window.focus = function(){ return false; }",L"JavaScript",NULL);
こんな感じでJavaScriptを実行してみましたが、ダメでした。
retにS_FALSEが入り失敗します。何かfocusをさせないうまい方法は無いものでしょうか?
010697
2006/07/26(水) 23:17:13execScriptの3番目の引数がNULLでは駄目なのでは?
↓これでどうよ?
VARIANT result;
VariantInit(&result);
BOOL ret = pHW2->execScript(L"window.focus = function(){ return false; }", L"JavaScript", &result);
あ、execScriptのサンプルありがとう。
010797
2006/07/26(水) 23:19:26の前にwindow.focus = function(){ return false; } で要求した動作を満たしてる?
window.focus()メソッドが完全に無効になっちゃうけど、それでもかまわないの?
0108デフォルトの名無しさん
2006/07/27(木) 23:19:27やりたい事:Webアプリケーションを自動で操作するスタンドアローンアプリを作りたい
1 フレームがある場合どうすればよい?
2 別ウインドウが開く場合どうする?
3 画面遷移完了はどのイベントを受信することで判る?
4 操作アプリ起動時に、既に開いているIEオブジェクトを取得して操作できる?
よろしくです
010993
2006/07/27(木) 23:26:31レスありがとうございます。
>106
3番目をNULLではなく、Variant変数を渡したら
retにはS_OKが返ってきました。
しかし、どういうわけかfocusしてしまいます。
>107
取り合えず手詰まり状態なので、何でもやってみようという感じです。
必要なのはHPの中の文字だけなので、HPを表示しているIEコンポは
別Windowにして非表示にしてみたのですが、そのページを再表示すると
その非表示のWindowにFocusがあたって、今まで前面にいたWindowの
Focusが外れてしまいます。うーむ困ったものです。
011097
2006/07/28(金) 00:18:29再表示した時にもう一度execScript実行してる?
ドキュメントを再読み込みしたら、window.focusの中身はまた元々のfocusメソッドに戻ってると思うよ。
DIID_DWebBrowserEvents2のDownloadCompleteイベントを監視して毎回、window.focus無効にしないと駄目だぜよ。
(DocumentCompleteは再読み込みでは発生しないのでDownloadCompleteイベントがいいです)
011193
2006/07/28(金) 23:35:1697さん
DownloadCompleteイベント時に常にexecScript()をしてみたのですが
ダメでした。やはりfocusがあたってしまいます。
ちょっと思ったのですが、focusはDownload中にScriptとして読み込まれ、
実行されるわけですよね?だからDownloadComplete時にfocusを無効にしても
遅いような気がしてきました。BeforeDownloadですとDocumentが取れないですし、
これから読込むページのfocusを無効にするのは無理なのかな?という気が
してきました。
あとDownload前に現在のForegroundのHWNDを保持しておいて、DownloadComplete後
保持したHWNDでSetForegroundWindow()をするという方法も考えたのですが
再読込み時に現在前面にいるWindowのfocusが一瞬外れてしまうので、
余り使いたくないですね。
他に何か良い方法が無いものでしょうか?
011297
2006/07/29(土) 00:38:29>ちょっと思ったのですが、focusはDownload中にScriptとして読み込まれ、
>実行されるわけですよね?だからDownloadComplete時にfocusを無効にしても遅いような気がしてきました。
まぢですか。と思ってやってみたら本当ですね。
私は標準で用意されてるwindowクラスのmoveToやらmoveByなどのメソッド書き換えて、
別の動作にさせたいという要求があったのですが同じ理由で無理そう。
そうなるとちょっと良い方法はわかりません。困りましたw
0113デフォルトの名無しさん
2006/07/31(月) 01:24:46わざわざDocumentのwriteで書き直しを行っていたのですが、
execScriptなんてのがあったのですね。
大変参考になりました、ありがとうございます。>>103
ちなみに、BSTR型は、ただのワイド文字列とは違うので(先頭が文字列長になっています)
CComBSTR等で包んであげると良いです。
execScript(CComBSTR("window.focus = function(){ return false; }"),CComBSTR("JavaScript"),NULL);
0114デフォルトの名無しさん
2006/08/02(水) 01:30:29作成しようとしているものは、既存のクリック募金のサイトにアクセスして、クリック回数や募金の金額を管理してくれる簡単なアプリです。
対象とするサイトは以下のようなサイトです。
ttp://www.kirin.co.jp/active/env/mizunomegumi/click.html
ttp://clickbokin.ekokoro.jp/belmo.html
ttp://www.thehungersite.com/cgi-bin/WebObjects/CTDSites
クリック時に、WebBrowserコントロールのOnBeforeNavigate2()が呼ばれるサイト
では、OnBeforeNavigate2()でフックする方法が使えると思います。
ただ、一番上のキリンのサイトのようにFlashで書かれたサイトでは、クリック時に
OnBeforeNavigate2()が呼び出されないようで、クリックを検出する方法を
どのようにしたら良いかと悩んでします。
なんか、良いアイディアあるでしょうか?
WebBrowserも、HTMLも、Visual C++も、Flashも詳しくないのでどこからてを付けてよいか困っています。
よろしくお願いします。
0115デフォルトの名無しさん
2006/08/02(水) 17:26:000116デフォルトの名無しさん
2006/08/03(木) 00:32:09NavigateComplete2イベントなんてどうでしょう?
以下のサイトにDWebBrowserEvents2のイベント説明が載ってるのでいろいろ試してみては?
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents2/dwebbrowserevents2.asp
0117114
2006/08/04(金) 00:53:49詳しい説明ありがとうございました。
NavigateComplete2も試してみたんですが、クリックした際に呼ばれないようです。
まだ、理解できていないですが、以下の方法で少しチャレンジしてみようと思います。
相談にのっていただいてありがとうございました。
1)Ethrealでパケットキャプチャして調べたところ、通信をしているのでWebBrowserコントロールで
通信しているパケットを取得して判断。
2)下の方法でクリックのイベントが取れるそうなので、そこからがんばる。
http://support.microsoft.com/kb/246247/
0118デフォルトの名無しさん
2006/08/04(金) 17:43:06IHTMLAnchorElementではそのようなメソッドがないようです。。。
0119デフォルトの名無しさん
2006/08/04(金) 21:08:39IUrlHistoryStg::QueryUrl
0120デフォルトの名無しさん
2006/08/10(木) 11:11:27どこか参考になるサイト等はありますか?
0121デフォルトの名無しさん
2006/08/10(木) 13:29:450122デフォルトの名無しさん
2006/08/10(木) 16:24:39BCCでは使えない
VC++にしなさい
0123デフォルトの名無しさん
2006/08/10(木) 16:43:240124デフォルトの名無しさん
2006/08/10(木) 17:41:480125デフォルトの名無しさん
2006/08/11(金) 10:11:58ありがとうございました
0126デフォルトの名無しさん
2006/08/11(金) 10:15:09たぶんこの方法ならできると思う。VC++固有の機能は使っていないはず。
http://www.adp-gmbh.ch/win/misc/mshtml/HTMLWindow.html
ATLのDLLを用意できるのなら、このページの方法が使える。
ただしCComPtr/CComQIPtrなどを使わないように改造する必要があるだろうが。
http://www.nitoyon.com/vc/tips/ie_component.htm
0127デフォルトの名無しさん
2006/08/12(土) 11:58:06すごいね。この上のHP。mingwでもできるようだ。BCCでもできるっしょ。
http://www.adp-gmbh.ch/win/misc/mshtml/MSHTMLTest.zip
0128デフォルトの名無しさん
2006/08/20(日) 19:17:37というイベントはどう拾えばよいのでしょう?
0129デフォルトの名無しさん
2006/08/21(月) 00:17:13ツールバー上の特定のボタンを押すとポップアップメニューが出てくるように
プログラムしたのですが、IEを複数起動した場合、2つ目以降では
メニューが出てきません。他にも、IEを複数起動した場合、不安定に
なることが多いです。これって何が原因でしょうか。
IEを複数起動すると、ツールバーも複数存在するわけですが
OSの内部ではどうやって各ツールバーを扱っているのでしょうか。
0130デフォルトの名無しさん
2006/08/21(月) 00:35:46更新ボタンって自分で作ってないの?
F5はキー拾えばいいんじゃね?
>>129
>IEを複数起動すると、ツールバーも複数存在するわけですが
>OSの内部ではどうやって各ツールバーを扱っているのでしょうか。
IEが別プロセスならツールバー間も無関係なはず
別プロセスでも共有しちゃってるような何かリソースがあるんじゃないの
設定ファイルとかレジストリの状態とか
0131128
2006/08/21(月) 00:45:50説明不足でした。
自分でIEコンポのインスタンス生成してるんじゃなくBHOをやってます。
なのでInternetExplorerで更新されたことが知りたいんです。
更新だとBeforeNavigateはこないです。
0132デフォルトの名無しさん
2006/08/21(月) 02:11:02BHOってのがなんだか知らんが、
DownloadBeginかDownloadCompleteだったら、
location.reload()とかで更新されるたびに毎回通知がきたよ。
0133デフォルトの名無しさん
2006/08/21(月) 18:43:50複数のスレッドから呼ばれてもきちんと動作するように作る。
0134デフォルトの名無しさん
2006/08/23(水) 01:59:130135七資産
2006/08/23(水) 02:50:300136デフォルトの名無しさん
2006/08/23(水) 02:53:57IE7と6の違いには遭遇してないけど、他にもいろいろあるんだろうな。
0137デフォルトの名無しさん
2006/08/23(水) 07:34:410138デフォルトの名無しさん
2006/08/23(水) 10:42:28第二次世界大戦はそれで惨敗した。
0139デフォルトの名無しさん
2006/08/23(水) 12:18:310140デフォルトの名無しさん
2006/08/23(水) 15:24:43気合はもちろん必要だが、気合だけでは無理、ということをお忘れなく。
0141139
2006/08/23(水) 23:32:100142七資産
2006/08/24(木) 03:40:090143デフォルトの名無しさん
2006/08/24(木) 13:24:330144139
2006/08/24(木) 14:43:03悩んでいるロジックについて考えると答えが出たりする。
この閃きは、神から授かった才能。
0145デフォルトの名無しさん
2006/08/24(木) 14:49:07でもここはここはIEコンポーネントを使い倒すスレだよ。
0146デフォルトの名無しさん
2006/08/27(日) 19:01:35マイクロコロヌ
>>144
それは、うまく右脳を使える時間帯だな。ハイヤーセルフ(高次元の自分)と呼ばれる奴だ。
今、悩んでいる出来事を書いたメモを枕元において寝るとハイヤーセルフが寝ている間に解決してくれるという。
経営者とかが良くやる手法だとか。人間誰しも持ってる能力だ。
独学で使いこなしているのであれば、なかなか評価できるが。
0147デフォルトの名無しさん
2006/08/28(月) 08:27:51IHTMLDocument2::write呼び出したら、まずいかな?
Mutexはったら大丈夫かな?
0148デフォルトの名無しさん
2006/08/28(月) 09:02:21とかかも
0149147
2006/08/28(月) 11:53:33む〜今までおぼろげな理解で済ませてきたが、
Apartmentとかも勉強せねばならんな。
確かに、そっちのスレッドのがよさげ。
0150デフォルトの名無しさん
2006/09/09(土) 18:32:57結局Reloadを検知するのってどうやんの? 生IEなんだけど。
BeforeNavigate2 はFireされないし
wm_commandだとメニューやF5は取れるけど、
更新ボタン押されても分からないよママン
0151デフォルトの名無しさん
2006/09/09(土) 21:16:010152デフォルトの名無しさん
2006/09/10(日) 11:52:41これのaxwebbrowserのプロパティを外からいじる方法ってあるんでしょうか?
0153デフォルトの名無しさん
2006/09/16(土) 09:36:170154デフォルトの名無しさん
2006/09/16(土) 09:43:590155デフォルトの名無しさん
2006/09/16(土) 10:03:02タブブラウザの実装による。
COMのインタフェースとして取得できるなら望みはあるけど。
普通はそこまでしてないだろうな。
0156デフォルトの名無しさん
2006/09/16(土) 16:41:080157デフォルトの名無しさん
2006/09/16(土) 17:57:000158デフォルトの名無しさん
2006/09/17(日) 02:46:280159デフォルトの名無しさん
2006/09/17(日) 13:59:170160128
2006/09/21(木) 00:37:35なんか別件で調べてたら偶然みつけた
VK_BROWSER_REFRESH
とかいうvirtual keyがあるらしい。XP/2000のみ有効らしいが。
0161152
2006/09/23(土) 23:02:35とてもマイナーな洋物タブブラウザなので無理そうですね…
スクリプトエラーの警告がうざすぎるので消したかったのですが諦めます。
0162デフォルトの名無しさん
2006/10/29(日) 18:23:48IEコンポが自分で作ったスレッド上で実行されるんですよね?
なのでそのイベント上ではメインスレッドと処理がぶつからないようにすべきなんでしょうか?
0163デフォルトの名無しさん
2006/10/29(日) 18:41:040164デフォルトの名無しさん
2006/10/29(日) 19:47:13自作プログラムの中は舞いコンピュータゾーン扱いされるのでは?
俺の想像だが。
0165デフォルトの名無しさん
2006/10/29(日) 20:12:04OEが使ってるのもそれ
0166デフォルトの名無しさん
2006/11/22(水) 17:06:05A版 NG
W版 OK
だったのが、
A版 OK
W版 NG
に変わってる(IE6ではどっちもOKだった)
MSがもはや何をしたいのか分らん。A版戻したってことは
日本語URL何が何でも排除って方針でもないようだが…。
もう自分で変換することにしたよ(´・ω・`)
0167デフォルトの名無しさん
2006/11/22(水) 17:07:07W版 NG
ってのは正式版ではってこと
0168デフォルトの名無しさん
2006/11/24(金) 13:30:42LPWSTR で非 ASCII 文字を含む URL を渡したとき、どういう動作をしてほしいの?
UTF-8でエンコードしてURLEscape?
漏れには何を持って「OK」「NG」とするのかもわからない。
0169デフォルトの名無しさん
2006/11/25(土) 10:31:20166だけど俺に対して書いたんだよね。
>漏れには何を持って「OK」「NG」とするのかもわからない。
内部動作的な詳細は知らないが、IE6状態で動いてたものが
IE7を入れると動作が変わるのがNG。
>UTF-8でエンコードして
たぶんこれでOKなんだろうが、上に書いたとおりInternetOpenUrl
の内部動作の実際は知らないので、「互換性を保ってくれ」というの
が要望。
非 ASCII 文字を含む URLを使うなという話もあるかもしれないが、
プログラムのユーザーが何を入れるかは分らないからどうしようも
ない。
0170デフォルトの名無しさん
2006/11/25(土) 14:55:35IE6の動作が基準だったらこれはトートロジーで書く意味ないじゃん。
IE6がバグっててIE7でバグが修正されただけかもしれないのに。
どうせバグでもいいから動作変えるなと言うんだろうけど
まあIEコンポはSide-by-Sideでないから一理はあるな
0171デフォルトの名無しさん
2006/11/25(土) 15:57:46A版とW版って文字コード以外動作同じだと思ってたんだけど
そうじゃない場合もあるのか?
文字コードの変換(A←→W)はAPI使ってる。
IE7で『バグが修正されて』どっちも駄目になるなら
まだ整合性も有るように感じるけどね。
>> に変わってる(IE6ではどっちもOKだった)
>IE6の動作が基準だったらこれはトートロジーで書く意味ないじゃん。
そう? 166を書いた段階での参考情報として付加したまで。
0172デフォルトの名無しさん
2006/11/25(土) 16:54:530173デフォルトの名無しさん
2006/11/25(土) 18:25:22>URLをUTF-8で送信
言われて、それらしきオプション、ONOFFどちらも試してみた。
けど変わらなかった。そういう問題でも無いみたい。
A版ならチェックがOFFでも日本語URL開ける。
0174デフォルトの名無しさん
2006/12/05(火) 14:43:35もしそうなら、代わりの機能とかどうにかしてMSChartを使うこととかできませんか?
0175174
2006/12/05(火) 19:15:17向こうで質問しなおしてきます。
失礼しました。
0176デフォルトの名無しさん
2006/12/06(水) 06:12:27Windowのサイズを変更したいのですが、WidthやHeightがわかりません。
どのように調べればよいですか?
0177デフォルトの名無しさん
2006/12/10(日) 00:28:130178デフォルトの名無しさん
2006/12/10(日) 04:02:540179デフォルトの名無しさん
2006/12/10(日) 11:38:52ここはどうすんの?
http://worlds-highest-website.com/
0180デフォルトの名無しさん
2006/12/10(日) 11:51:360181デフォルトの名無しさん
2006/12/21(木) 01:20:17BeforeNavigate2の段階で、
移動しようとしてるフォルダのpIDL取得する方法はないですか?
URLじゃなくて。
NavigateCompleteすればShellGetPathで取れるんですが
0182124
2006/12/26(火) 01:21:39では早速。
Internet Explorer_Hiddenウィンドウの役割と
IEのウィンドウで使われる独自メッセージについて調べているのですが、
うまく探せません。
いい情報を見かけた方、お教え下さい。
0183182
2006/12/26(火) 02:33:11124は間違い
0184デフォルトの名無しさん
2007/01/08(月) 19:04:39あるときにデータが途中で切れちゃうよママン。
まーPostData中に(っていうかアップロードしたファイル中に)NULLが入ってるんだろうけど
正確なPostDataのlengthって取れないのかな?
0185デフォルトの名無しさん
2007/01/08(月) 19:47:02自己解決、というか、KnownBUGだったよ。
http://support.microsoft.com/kb/890177
GET/POSTのデータ横取用プロキシ作って組み込むか。
0186デフォルトの名無しさん
2007/01/08(月) 22:32:300187デフォルトの名無しさん
2007/01/10(水) 20:07:45よろしくオナガイシマス
static CComQIPtr< IWebBrowser2 > pWB2;
こんな書き方良く見かけるのですがこれはpWB2にIWebBrowser2のポインタを
設定すると考えてよろしか?
COMコンポ全然わかんないんでスマソ
0188デフォルトの名無しさん
2007/01/10(水) 20:08:350189デフォルトの名無しさん
2007/01/10(水) 21:35:020190デフォルトの名無しさん
2007/01/10(水) 21:42:230191デフォルトの名無しさん
2007/01/10(水) 22:29:33VS2005なのですが、コンパイラの設定でATLを使用するに設定しないとだめ?
それでpWB2の値の意味は何なの?けっきょく
0192デフォルトの名無しさん
2007/01/10(水) 22:56:31CComQIPtr< IWebBrowser2 > 型の変数を宣言しただけで、値は設定していない。
C++の基本とVC のCOM向け拡張の両方とが解っていないと、
C++でCOMやるのは難しいと思う。
0193デフォルトの名無しさん
2007/01/10(水) 23:34:43COMとかなるべく関わりたくなかったんだけど、やらなきゃいけない羽目になって
苦しんでいます、pWB2の型は何型になるのでしょうか?
0194デフォルトの名無しさん
2007/01/10(水) 23:57:13CComPtrも基本はauto_ptrと同じだ。要するに解放忘れを防ぐための仕組み。
0195デフォルトの名無しさん
2007/01/11(木) 00:09:06pWB2の型はCComQIPtr< IWebBrowser2 >型と何度も(r
0196デフォルトの名無しさん
2007/01/12(金) 01:25:36開いてるページに埋まってるFrameの中を見ることは出来ないんですか?
0197デフォルトの名無しさん
2007/01/12(金) 01:37:570198デフォルトの名無しさん
2007/01/12(金) 02:02:29ありがとうございました。
0199デフォルトの名無しさん
2007/01/12(金) 11:54:54IEというかInternet Optionでの設定は反映されるんですが、
独自のProxy指定は出来ないのですか?
0200デフォルトの名無しさん
2007/01/16(火) 13:47:2032bit環境だとHWNDプロパティがInt32で返ってくるんだけど、
これって64bitだとどうなってるの?
IntPtrで返ってくる? それともInt64?
0201デフォルトの名無しさん
2007/01/21(日) 09:06:26ttp://www.hannan-u.ac.jp/~ichi/04/hasegawa/zeni.html
今時の卒論ってこんな程度なの?
0202デフォルトの名無しさん
2007/01/21(日) 09:11:010203デフォルトの名無しさん
2007/01/21(日) 11:50:200204デフォルトの名無しさん
2007/01/21(日) 11:53:390205デフォルトの名無しさん
2007/01/21(日) 15:01:08しかしながら現状としては�@�A�B個々のプログラムの方向性は出来上がってきたものの、
個々を関連付けるプログラムの作成には至っておらず、前述されている「タブブラウザ」への
組み込み、動作テスト等もまだ出来ていない状態である。最終的には独立したプログラムと
して完成させ、デスクトップ上で起動できる状態を目指していく状態にある。
何もしてねーwwwwww
0206デフォルトの名無しさん
2007/01/22(月) 00:14:040207デフォルトの名無しさん
2007/01/22(月) 00:27:18既に社会人で業務としての資料作りも慣れてる俺が言うのもなんだが、
内緒だけどあの程度プレゼン資料なら、前日の夕方から慌てて徹夜でデッチあげたりしてる。
0208デフォルトの名無しさん
2007/01/22(月) 00:40:35そうやってでっち上げたんじゃないのw
0209デフォルトの名無しさん
2007/01/22(月) 00:41:28まぁありかなw
0210デフォルトの名無しさん
2007/01/22(月) 00:50:16それとも学部がヲイなのか?
当然ゼミはヌルポなんだけど、学生はもっとガッされるべき。
0211デフォルトの名無しさん
2007/01/22(月) 01:39:03どこか分からん。国立じゃなさそうだ
0212デフォルトの名無しさん
2007/01/22(月) 01:41:460213デフォルトの名無しさん
2007/01/22(月) 02:13:40最初のかたどうぞ
↓
0214デフォルトの名無しさん
2007/01/22(月) 02:56:210215デフォルトの名無しさん
2007/01/22(月) 04:17:500216デフォルトの名無しさん
2007/01/22(月) 04:19:110217デフォルトの名無しさん
2007/01/22(月) 08:23:35【性別】 男/女
【年齢】 実年齢
【居住地】 現在住んでいる所を行政区程度まで
【職業】 ありのままに
【身長】 cm表記で
【体重】 kg表記で正直に
【スリーサイズ】 バスト・ウエスト・ヒップをcm表記で。
【画像URL】 全身ならびに顔写真を100万画素クラスで。
【メールアドレス】 携帯電話もしくは、プロバイダ等のアドレスを。
0218デフォルトの名無しさん
2007/01/23(火) 08:01:54学生の質が垣間見えた。
0219デフォルトの名無しさん
2007/01/25(木) 02:20:310220デフォルトの名無しさん
2007/01/25(木) 18:55:29わかったのですが、オブジェクト型を引数にとるjavascript関数に
引数を渡して実行することは不可能なのでしょうか
(例えばVCから IUnknown* の情報を渡したいとか)。
0221デフォルトの名無しさん
2007/01/26(金) 20:40:08今更だけどなんか見つけたよ。
http://isawseashell.blogspot.com/2007/01/via-proxy.html
0222デフォルトの名無しさん
2007/01/27(土) 02:14:46私も>>221のリンク先とと同じくUrlMkSetSessionOptionに
INTERNET_OPTION_PROXYを渡して実現してた。
問題なく動作するはず。
0223デフォルトの名無しさん
2007/01/27(土) 20:53:20を使ってる者ですが、
これを使って表示している場所から、別のリンク先をクリックした際に、
何を送信しているか補足する場所ってありますでしょうか?
Navigatingメソッドでは何もつかめなさそうですし。
画面上のHTMLソースだけではなく、HTMLヘッダーだけではなく、ファイルに書き出していない
メモリ上のクッキーの値もみたいのですが
知ってる方、よろしくお願いします。
環境
XP64 VS2005 C#
0224デフォルトの名無しさん
2007/02/02(金) 22:55:44ページを閉じるのを感知したいのですが
なにか方法あります?
0225デフォルトの名無しさん
2007/02/02(金) 23:03:590226デフォルトの名無しさん
2007/02/08(木) 19:13:13イメージとしてはプロキシサーバとかポップアップブロックみたいな感じ。
つまり間に一つ噛ましたいわけです。
どうしたらいいか教えてください。環境VC++
0227デフォルトの名無しさん
2007/02/08(木) 19:30:14Proxyを間に入れれば?
0228デフォルトの名無しさん
2007/02/08(木) 20:01:07そうしてみます。どうもでした。
0229デフォルトの名無しさん
2007/02/08(木) 21:38:06C#だけど。
0230デフォルトの名無しさん
2007/02/08(木) 23:02:14IEの表示文字サイズがなんになってるかとか 調べられないかな・・
どうやったら 調べられるか誰か教えてくれ・・・・
0231デフォルトの名無しさん
2007/02/08(木) 23:15:05いわゆる最大〜最小の文字サイズ?
それは初歩だと思うけど、「ExecWB OLECMDID_ZOOM」辺りでググれ。
0232デフォルトの名無しさん
2007/02/09(金) 01:14:240233デフォルトの名無しさん
2007/02/16(金) 14:31:51面白いってか、あれって卒論ってレベルじゃねーぞ。
なんか講義一回分の資料って感じじゃね?
街のパソコン教室って感じで、大学でやられても困るけど。
0234デフォルトの名無しさん
2007/02/21(水) 14:05:15Sleipnirのこれ
http://www.sleipnir-wiki.jp/original_index.php?FAQ#rbe2449f
はどういう実装になっているのでしょうか?
0235デフォルトの名無しさん
2007/02/21(水) 19:36:43Sleipnirの実装は知らんが、DonutRAPTのソースを落としてきて
AtlhostEx.h,ScriptErrorCommandTargetImpl.h,DialogKiller.h辺りを眺めてみればいいと思う。
対象言語がC++以外の場合は知らん。
0237デフォルトの名無しさん
2007/03/15(木) 18:12:34ボタンを押して、次のページに移動するプログラムを書いております。
dim wbrowser as object
Set wBrowser = CreateObject("InternetExplorer.Application")
wBrowser.all.Item(11).Click
ここで、
メッセージボックスが表示され「はい・キャンセル」を選択しなければなりません
エンターをSendkeysでよいのですが
sendkeys "{Enter}"
と記載しても、その前にIEオブジェクトに制御が移動するようで、できません
何方か解決策がありましたらお教え下しさい
0238デフォルトの名無しさん
2007/03/17(土) 06:03:520239237
2007/03/17(土) 13:10:46237は
某掲示板で非同期でよる方法で解決しました。
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
0240IE7入手先
2007/03/17(土) 16:46:25MSN版IE7
http://promotion.msn.co.jp/ie7/
http://download.msn.co.jp/download.aspx/sid=I7bzPs2A/ie7setup.exe
Yahoo版IE7
http://recommend.yahoo.co.jp/ie7/campaign/index.html
http://recommend.yahoo.co.jp/ie7/index.html
http://a109.g.akamai.net/7/109/31749/000/downloads.yahoo.co.jp/browser/ie/7/IE7Setup.exe
Google版IE7
http://www.google.com/toolbar/ie7/intl/ja/
http://dl.google.com/toolbar/data/ie7/IE7Setup_G_JP.exe
0241デフォルトの名無しさん
2007/03/24(土) 22:04:58その日によってURLが変わるんですけど
これをお気に入りにできませんか?
スクリプトのようなお気に入りってできます?
ローカルHTMLを経由してやるのは簡単ですが
ちょっと醜いやり方のような・・・
0242デフォルトの名無しさん
2007/03/25(日) 02:13:04日付に合わせてURLを作成して移動するbookmarklet作ればいいんでない?
0243241
2007/03/25(日) 09:45:27javascript:ってやつですね?
IE特有の機能で、多分スクリプトに関係しているので
ここか、と思いました。
普通のHTML内のスクリプトとはちょっと違いますし・・・
(上述のローカルHTMLならそうかも)
ちなみにここってBHOとかは作らないんですか?
どうもありがとうございました。
0244243
2007/03/31(土) 00:23:07独り言なのですが・・・
ブックマークレットってローカルファイルを表示中のIEからは
スクリプトブロックされて動かないみたいですね・・・
(XP SP2以前は動いたような?)
というかこういうのってどのスレに行けばいいのだろうか?
WSHでもHTAでもHTMLでもないし・・・
0245デフォルトの名無しさん
2007/03/31(土) 00:28:43Web制作板だっけ? そんな板があったハズ。
0246244
2007/03/31(土) 16:48:21以前にもWeb制作板内を探したんですが
やはりWebサイトを作る、という方向性で
IE依存のスクリプトやIE固有の機能に関しては
あまり積極的ではないような・・・?
スクリプトの場合、こことかはいいのかな、とも思うんですが・・・
ttp://pc11.2ch.net/test/read.cgi/hp/1070611524/
どうも度々すみませんでした
0247デフォルトの名無しさん
2007/04/08(日) 20:44:26Private 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にキャストして、
同じようにイベントを設定した場合は普通に動きます。どうすればいいでしょうか?
0248デフォルトの名無しさん
2007/04/09(月) 20:00:140249デフォルトの名無しさん
2007/04/16(月) 18:34:24IHTMLTxtRange 辺りかな?と思ったのですが、分かりませんでした。
0250デフォルトの名無しさん
2007/04/18(水) 22:08:02IEコンポ使ってhtmlの表示を行っている途中で
ある特定の<img src="xxx">が出現したら、その画像を置き換えたいのですが
やり方がどうもわかりません。
htmlを書き換えて一時ファイルを作成してとかではなく、メモリストリームとかで処理したいのですが
ヒントとか、解説があるサイトとかあれば教えてください。
0251デフォルトの名無しさん
2007/04/18(水) 22:17:48やだやだ…そんなところ舐めないでよぉ
0252デフォルトの名無しさん
2007/04/20(金) 05:58:23馬鹿のスクリプト厨で当然.NETもよく知らない俺ですが
ActiveXならbody.onloadのタイミングとかで
document.imagesを調べる、というのでは駄目でしょうか?
0253デフォルトの名無しさん
2007/04/20(金) 07:05:59馬鹿のスクリプト厨です
IWebBrowser2::get_Document ->
IDispatch::QueryInterface(IID_IHTMLDocument2) ->
IHTMLDocument2::get_selection ->
IHTMLSelectionObject::createRange ->
IDispatch::QueryInterface(IID_IHTMLTxtRange) ->
IHTMLTxtRange::get_text
で、できました。スクリプトの場合と殆ど同じですね
0254249
2007/04/20(金) 08:23:56どうもありがとうございます。
ただ、IHTMLTxtRange::get_textって、選択された文字列そのものですよね?
あいうえお
~~~~~~
↑ここが選択されている場合、「いうえ」が納まっている。
私が欲しいのは文字列そのものではなく、その選択されている範囲座標なんです。
例えば、xy座標で、左上が10:10、右下が20:60 みたいな。
要は、マウスでクリックした座標が、選択範囲内か、そこから外れた位置なのか?
を知りたいわけです。
0256デフォルトの名無しさん
2007/04/21(土) 14:59:24選択されていなければ範囲外
0257デフォルトの名無しさん
2007/05/14(月) 21:41:120258デフォルトの名無しさん
2007/05/16(水) 22:25:34「ウインドウハンドルからIWebBrowser2を取得したい」で
ぐぐって出てくるコードに該当個所がある。
0259デフォルトの名無しさん
2007/05/17(木) 16:36:45Navigate()再発行とかするとimg srcでうまくいかないからダメ。
OnBeforeNavigate2とかのタイミングで、URLをコッソリ書き換えることが出来ればいいんだが。
IInternetProtocolImplとかそのあたりを実装するんじゃまいかと思ってるんだが、誰か知らない?
0260デフォルトの名無しさん
2007/05/17(木) 18:45:000261259
2007/05/17(木) 18:56:01OnBeforeNavigateイベントでURLを取得は出来るが、LPCTSTRなので書き換えは出来ない。
たぶんイベントじゃないと思うんだよね。PassthroughAPPとかそのあたりのヨカン。
ドキュメントが少なすぎてわからん。
0262デフォルトの名無しさん
2007/05/17(木) 20:24:060264259
2007/05/18(金) 12:10:07ある書き換え不能なサイトのHTMLに、存在しないサーバへの画像リンクが多数埋め込まれている。
オレは本当の画像の所在を知っているので、問い合わせ先サーバ名をこっそり差し替え、存在しないサーバが存在するかのようにレンダリングしたい。
プロセス外に影響がないようにしたいので、etc/hosts をいじるとかはしたくない。
0265デフォルトの名無しさん
2007/05/18(金) 15:31:590266259
2007/05/18(金) 18:37:59あーほんとだー できそうだー
以下のようなコードを書きましたが、どうしても画像のダウンロードをコントロールできません。
そもそも、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;
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);
0269デフォルトの名無しさん
2007/06/12(火) 19:58:16CoCreateInstance()にて生成したIEに対して Navigate() すると新しく別のウィンドウが開いてしまいます。
元のIEのアドレスバーに適当なURLを入れると、
「この Web ページを開くために、Internet Explorer で新しいウィンドウを開く必要があります。
お使いのコンピュータのセキュリティのため、違うゾーンの Web サイトは別のウィンドウで開く必要があります。」
と言われて、また別のIEが開いてしまいます。Win2K(IE6)では動作確認済みです。
CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_ALL, IID_IWebBrowser2, (void**)&iweb ) );
iweb->put_Visible( VARIANT_TRUE );
CComVariant url( "http://www.google.com/" ), flags( 0 ), target( "" ), post( "" ), headers( "" );
iweb->Navigate2( &url, &flags, &target, &post, &headers );
エラー処理は省略してますがこんな感じです。
何か処理が足りて無いのだと思うのですが、よろしく願いします。
0270デフォルトの名無しさん
2007/06/26(火) 12:29:56Vistaを使ってないのでわからないですが、
Vistaでは他のゾーンにジャンプする場合
必ず他ウィンドウで開く仕様なんじゃないですか?
最初にInternetExplorerオブジェクトが生成された場合のゾーンが
インターネットゾーンじゃないんでしょうね。
XPでもオブジェクト生成すると
アドレスバーには何も無いものが出てくるので
初期ゾーンが何かよくわからないですが・・・
くだらないやり方ですがiexplore.exeにURLを指定して起動すれば
ゾーン間ジャンプを避けられるんじゃないでしょうか?
それで後からShell.ApplictionでIWebBrowserを探して取得する、とか。
0271デフォルトの名無しさん
2007/06/26(火) 12:39:30私はATLもMFCも知らないのでよくわかりませんが、
Invokeが呼び出されない、というからには
IDispatchが使われてないんでしょう。
IDispatch継承のカスタムインターフェースを実装したオブジェクトの場合
IDispatchが呼び出されるかカスタム部分が呼び出されるかは
場合によって異なります。
スクリプト言語やVBでレイトバインディングを使うと
IDispatchが呼び出されますが
それ以外の多くの場合にはカスタム部分が呼び出され、
IDispatchは無視されるはずです。
0272VC--
2007/06/30(土) 17:34:02とりあえず、CHtmlView::Navigate2を使って、URLを表示しただけで、具体的な方法が
わかりません。
例えば、あるサイトで画像をクリックしたら、画像が変化する(javascriptで実装)みたいなプログラム
があったとして、擬似的に発動させる方法が知りたいです。
キーボードイベント、マウスイベントで発生させる以外の方法で
知ってたらご教授願いします。
0273デフォルトの名無しさん
2007/07/12(木) 01:24:53,.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'' /;:;:;|
0274デフォルトの名無しさん
2007/08/04(土) 13:58:59urlってどこから取得できるんだろう
0275デフォルトの名無しさん
2007/08/04(土) 14:56:190276デフォルトの名無しさん
2007/08/04(土) 21:40:420277デフォルトの名無しさん
2007/08/15(水) 11:42:40downloadcompleteイベントだけがどうしても発生しません。
環境 EXCEL2003sp2 VBA XPSP2 ブラウザ6.0
navigatecomplete2,documentcompleteは発生します。ただrefreshをさせたときは動作しない、(上のほうのレスにもあります)ので
downloadcompleteを使いたいのです。
一番近い私と同じ症状を下記ページで見つけました
http://www.microsoft.com/japan/msdn/community/gdn/ml/WebTech_beginners.aspx
↑の「WebBrowser コンポーネントの DownloadComplete イベントにうついて」です。
がmshtml.dllはPCに入っています。参照設定に問題あるのかと思いましたが、よく分かりませんでした。
F2キーを押してオブジェクトブラウザを見てもちゃんとdownloadcompleteはありますから、問題はないと思うのですが・・。
busyをdo loopはできればやりたくないです。
StatusTextChangeを使うのもサイトによっては問題が起きるでしょうからできれば避けたいです。
問題のxlsファイルをUPすることもできます。
0278デフォルトの名無しさん
2007/08/17(金) 01:28:34IEコンポーネントを利用した自アプリでそのクッキーの情報を使う、
みたいなことは可能でしょうか?
あるいは単純に既存のIEと自アプリとでセッションを共有できればいいのですが、
レジストリでBrowseNewProcessというキーをNoにすることで全てのIEが
同一のプロセスで起動されるという情報がMSサイトにありましたが、
どうも効果がないようなんです。
0279デフォルトの名無しさん
2007/08/20(月) 22:20:26JavaScriptsだとnavigator.userAgentだと思うがVC++のやりかたわからんのだぜ
0280デフォルトの名無しさん
2007/08/21(火) 02:16:360281デフォルトの名無しさん
2007/08/21(火) 20:27:24�d
0282デフォルトの名無しさん
2007/08/23(木) 22:03:010283デフォルトの名無しさん
2007/08/26(日) 20:01:34http://www.codeproject.com/shell/AutomateShellWindow.asp
0284デフォルトの名無しさん
2007/09/02(日) 20:24:40ツール>インターネットオプション>セキュリティ>レベルのカスタマイズ
その他>混在したコンテンツを表示する
をOFFにしたいんだけど、どのInterfaceから操作できるんでしょうか?
0285デフォルトの名無しさん
2007/09/17(月) 02:58:47http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnbrowse/htm/top.asp
DHTMLオブジェクト モデルのおかげで、ページの構造をその場で修正できますが、
F5キーを押すか、ブラウザの[最新の情報に更新(Refresh)]ボタンをクリックしたと
たんに変更内容がすべて失われます。DocumentCompleteイベントを処理してコード
ウィンドウを最新の情報に更新することもできます(DownloadCompleteイベントは、
DocumentCompleteよりも前に発生することに注目してください)。ですから、ページを
初めてダウンロードするときに発生するDownloadCompleteは無視して、更新によって
発生するときだけ、このイベントを扱うようにします。単純なBoolean型のメンバ、たとえ
ばm_bDocumentCompletedなどを使えば、このような状況を簡単に区別できます。
0286デフォルトの名無しさん
2007/09/22(土) 13:26:08ユーザーが Enterキーで開くことが出来たのですが、
ie7から、開くことが出来なくなりました
キー操作でリンクを開く方法って、ないでしょうか???
0287デフォルトの名無しさん
2007/09/26(水) 13:40:19↑のHPの真ん中当たりのページを解析する/変更する2のソースなのですが、
コピペして実行しても期待通りの動作をしません。
if( strcmp( pszBuf, "temp") == 0){
// innerHTML を設定
pElement->put_innerHTML( L"hogehoge") ;
}
このif文の中には入るのですが、put_innerHTMLでHTMLにhogehogeと表示させる事が出来ません。
対象のHTMLには<p id="temp"></p>のように記述しています。
どなたか詳しい方助けてください。
0288デフォルトの名無しさん
2007/09/26(水) 20:55:53俺がやったらうまくいったよ。
そのページを書いた人もおそらくうまくいっただろうし、
お前のプログラムに何か問題があるんだと思う。
何か変にいじっていない?
0289デフォルトの名無しさん
2007/09/26(水) 21:21:21特にいじってないですが・・・
その試してみたソースうpしてもらえませんか?
それか俺のHTMLの方のソースに問題があるのかな・・・
そっちの線はうすいと思うけど・・・
0290デフォルトの名無しさん
2007/09/26(水) 22:00:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4975.txt
IEコンポーネントの使い方2のソースを基に、
WM_CREATEでいきなりローカルのHTMLを表示するようにし、
GOボタンを押したときに例のテキスト変更の処理を行うようにしてある。
あとどうしても気に入らない点を自分のスタイルに書き換えているが気にするな。
VC++ 8だから"AtlAxWin80"にしてあることにやや注意。
0291デフォルトの名無しさん
2007/09/26(水) 23:22:34ありがとうございます。ちょっと今アホな事してしまって開発環境があぼんしてしまったので、
再度環境を整えたら試してみます。
0292デフォルトの名無しさん
2007/09/27(木) 15:21:53ん〜どうやら
pElement->put_innerHTML( L"hogehoge");
の文でデバッガが立ち上がって落ちます。
<body>タグの間に
<p><div id="temp"></div></p>
って書いてるのですが、もしかして根本的に何か違いますかコレ
0293デフォルトの名無しさん
2007/09/27(木) 18:49:560294デフォルトの名無しさん
2007/10/05(金) 05:36:23表示させているHTML内のJavaScriptから、アプリケーション側の関数を実行する事は可能でしょうか?
0295デフォルトの名無しさん
2007/10/05(金) 20:35:210296デフォルトの名無しさん
2007/10/05(金) 21:58:22いえ、ただJavaScriptで出来ない処理をアプリケーションに任せようと思って・・・。
逆は出来るんですけど、JavaScript側からアプリケーションの関数の実行は出来ないのでしょうか?
0297デフォルトの名無しさん
2007/10/05(金) 22:15:41できるよ。externalで実装する。説明はめんどくさいからしないけど、
需要がある話なのでMSDNとかに載ってるんじゃないかなあ。
0298デフォルトの名無しさん
2007/10/05(金) 22:19:42externalですか。ちょっとググってみます。
なんか1から丁寧に解説してくれてるサイトがあればいいのですが、
なかなかそういうのが見つからなくて結構困ってます。
VisualStudioの構造体の中身が勝手に表示される機能をつかって、
メソッド名から機能を予測して色々試してみる方法には限界が・・・
0299デフォルトの名無しさん
2007/10/05(金) 22:28:05external使うともう少しちゃんとした方法で出来そうな感じですね。ただ使い方がさっぱりですが。
0300デフォルトの名無しさん
2007/10/05(金) 22:31:35おまえ>>287だろ。マルチ野郎は氏ね。
0301デフォルトの名無しさん
2007/10/05(金) 23:20:22C#とVBばかりでなかなか読めないけど・・・
0302デフォルトの名無しさん
2007/10/08(月) 22:01:28WebBroser1と2?なんか勘違いしてる気がするなあ。
externalはキーワードとしてちょっと曖昧だったかも。GetExternalで再度。
DonutRAPTとかでも実装してた気がするから、見ようと思えば見れると思う。
COMだから、C#/VB.NETよりC++のほうが普通に楽ですよ。
0303デフォルトの名無しさん
2007/10/09(火) 21:13:59GetExternalだともっと情報が少なくなってますね・・・。
色々見てるとInvoke()とかInvokeScript()あたりが臭そうなのですが、
引数が多い上に、それぞれの引数が何を意味しているのか分からないので全く使えないのが現状です。
0304デフォルトの名無しさん
2007/10/10(水) 03:06:130305デフォルトの名無しさん
2007/10/11(木) 04:43:11とりあえず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); のみです。これは仕様なのでしょうか?普通の関数のように使えないですか?
0306デフォルトの名無しさん
2007/10/11(木) 11:30:430307デフォルトの名無しさん
2007/10/11(木) 12:38:17それをキーワードに検索するといい感じのがヒットしたので使ってみました。
以下のコードをNavigate2の後に入れたのですが無限ループになってしまいますね。
while(pWB2->get_Busy(&pBusy)==VARIANT_TRUE || pWB2->get_ReadyState(&state)!=READYSTATE_COMPLETE){
Sleep(100);
}
なんか全然COMを理解してないような気がするのですが、少しソースを見ていただけないでしょうか?
http://ossan.fam.cx/up/uploda1/loda.cgi?mode=dl&file=441
パスはieです。
0308デフォルトの名無しさん
2007/10/11(木) 15:01:57こいつはマルチ野郎なので以後放置で
0309デフォルトの名無しさん
2007/10/11(木) 20:24:04変更ってできる?
0310デフォルトの名無しさん
2007/10/11(木) 21:23:06当たり前じゃん。
0311デフォルトの名無しさん
2007/10/11(木) 23:00:51C++系以外の言語から移植して気付いてないとかか?
0312デフォルトの名無しさん
2007/10/11(木) 23:06:260313デフォルトの名無しさん
2007/10/12(金) 04:02:40MSDN見て設計を変えてみました。
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が来ないのは何故なんでしょうか?
0314デフォルトの名無しさん
2007/10/12(金) 05:03:59while(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);
0315デフォルトの名無しさん
2007/10/12(金) 10:48:140316デフォルトの名無しさん
2007/10/13(土) 02:45:430317デフォルトの名無しさん
2007/10/14(日) 10:14:140318デフォルトの名無しさん
2007/10/14(日) 10:27:560319デフォルトの名無しさん
2007/10/14(日) 13:53:42こいつは自分で考える気が微塵もないクソ野郎です。以下放置で。
0320デフォルトの名無しさん
2007/10/15(月) 00:33:58なんでそんなに執拗にからんでくるんですか?
ちゃんと考えてるし、色々努力してます。どうやら才能がないらしいですが。。。
0321デフォルトの名無しさん
2007/10/18(木) 05:17:57クッキーによるセッション管理をしてるサイトなのですが
途中まで、WebRequestクラスでログイン処理などをした後
その情報を使って、WebBrowserコンポーネントでそのサイトにアクセスしたいのです。
そこでクッキーを引き継がせる方法を考えたのですが
WebRequest側は、CookieContainerでクッキーを保持してるのですが
IEコンポネ側に対応したプロパティーが見当たりません。
何かいい方法はありませんでしょうか?
よろしくお願いします。
環境はC♯です。
0322デフォルトの名無しさん
2007/10/18(木) 12:55:030323デフォルトの名無しさん
2007/10/20(土) 03:46:31変な応答してるヤツは何がしたいんだ?
>>321
手軽な方法としては、一度、
WebBrowserのdocumentプロパティを
mshtml.IHTMLDocument2にキャストして
writeの中に、WebRequestクラスで受信したデータを放り込めば
クッキー情報含めて引き継がれるよん。
0324デフォルトの名無しさん
2007/10/20(土) 04:23:16出来ない。
APIのInternetSetCookie で設定する。
0325デフォルトの名無しさん
2007/10/22(月) 19:09:00いちいち
HEAD http://hoge.fuge.com HTTP/1.1
とか書きたくないんだぜ
0326デフォルトの名無しさん
2007/10/23(火) 04:41:110327デフォルトの名無しさん
2007/11/07(水) 19:01:07どこいじればいい?
同時に立ち上がってるほかのプロセスに影響なく、特定のIWebBrowserのインスタンスだけ
変更できるとうれしいんだけど。
0328デフォルトの名無しさん
2007/11/07(水) 22:00:060329デフォルトの名無しさん
2007/11/07(水) 23:41:560331デフォルトの名無しさん
2007/11/11(日) 19:51:17最悪その関数をそのプロセスに対して差し替えて実現。
0332デフォルトの名無しさん
2007/11/12(月) 00:47:340333デフォルトの名無しさん
2007/11/12(月) 02:51:060334デフォルトの名無しさん
2007/11/12(月) 13:26:31・IEのクリック音を止めたい
・Temporary Internet Filesの位置を変えたい
・Proxyを追加したい。
この辺の事は、コンポネには装備されてなくて
IE自体も、直接レジストリを操作してるから
どうしてもやりたいなら、該当するレジストリの箇所を書き換えるしかない。
0335デフォルトの名無しさん
2007/11/13(火) 04:33:330336デフォルトの名無しさん
2007/11/13(火) 04:59:44pElement->put_innerHTML(A2OLE(boo));
}
こんな感じでidがfooである領域を書き換える事は可能だけど、
この領域に文字列を単純に追加する事って出来る?
今のところfoo内を読み込んで、strcatで文字を追加した後put_innerHTMLでやってるんだけど、
これじゃ二度手間な気がするんだが。。。
0337デフォルトの名無しさん
2007/11/13(火) 18:39:20例えば、IEコンポーネントを用いたミニブラウザの場合、複数起動しても、
それぞれが独立したcookie情報を用いることは可能でしょうか。
0338デフォルトの名無しさん
2007/11/13(火) 20:34:07つかIE複数立ち上げて見ればわかるんじゃね
0339デフォルトの名無しさん
2007/11/13(火) 20:54:19ブラウザが起動してる限り有効なクッキーの話だよね?
>>338がいうようにIE複数起動したときの動作がそのままIEコンポアプリ複数起動だとおもう。
たぶんクッキーは別になるんじゃないかな。
0340デフォルトの名無しさん
2007/11/13(火) 23:10:30例えば、mixiなどのオートログインが可能なサービスの場合、Cookie情報で
これを実現しています。ブラウザを複数起動しても、そのCookie情報が当然、
同じものがサーバーに送られます。(でないと、オートログインできません)
で、IEコンポーネントを用いたツールは、あくまでも別ツールなので、
仮にmixiにアクセスしたからと言って、自動でログインされても困るんですね。
そこで、Cookie情報はツールとブラウザとで異なったものにしておきたい。
また、ツールを複数起動した場合も、ツール毎にCookieは分けたいんですね。
で、IEの標準の動作では、複数起動しても、Cookieは共有というか共通になって
しまうんですが、IEコンポーネントの使い方次第で、Cookieをブラウザとは
別のものとして管理できるのかを知りたかったのですが、可能でしょうか。
0341デフォルトの名無しさん
2007/11/13(火) 23:18:49ただ、プロセス毎にCookieを利用しないようには出来るから、そのツール側で扱う情報を
Cookie以外の手法でなんとかするのがいいんじゃないの?
0342デフォルトの名無しさん
2007/11/13(火) 23:47:100343デフォルトの名無しさん
2007/11/14(水) 00:06:51実験してみます。
感謝です
0344デフォルトの名無しさん
2007/11/15(木) 05:40:24チェックボックスやボタンを自動でクリックしたりするのをするようなソフトを作っています
そこで
e := WebBrowser1.OLEObject.Document.documentElement.getElementsByName('なまえ');
としているのですがオートメーションオブジェクトでサポートしていませんというエラーが出てしまいます
このエラーはどのような意味なのでしょうか
0345デフォルトの名無しさん
2007/11/15(木) 05:41:56わかる方がいらっしゃったら教えてください
0346デフォルトの名無しさん
2007/11/15(木) 11:07:04"documentElement"が余計なんじゃね
0347デフォルトの名無しさん
2007/11/16(金) 20:21:41e := WebBrowser1.OLEObject.Document.getElementsByName('なまえ');
e.Item(0).click();
のような感じで自動クリックできました
0348デフォルトの名無しさん
2007/11/17(土) 02:20:50自動的にサーバーにアクセスして取得しますが、BeforeNavigate2のように、それらのデータを
取得しにいく前にイベントとして拾う方法がありましたら、教えてください。
また、redirectで別サイトにgetを送信する前に、それをイベントとして取得する方法があり
ましたら、これについてもお願いします。
0349デフォルトの名無しさん
2007/11/17(土) 04:28:540350デフォルトの名無しさん
2007/11/17(土) 16:40:32そこまでの自由度あるの?
0351デフォルトの名無しさん
2007/11/17(土) 18:21:370352327
2007/11/28(水) 10:52:27HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache
にウソを返すようにしたんだけど、切り替わらないorz
0353デフォルトの名無しさん
2007/11/30(金) 07:17:28システムがどっかメモリ上にキャッシュしてるんだろ
0354デフォルトの名無しさん
2007/12/01(土) 18:17:18IEオブジェクトに表示中の画像ファイルを、指定のフォルダに保存するには
どのようにすればよいでしょうか?
要するに、マウスの右クリックで表示される「名前を付けて画像を保存」を自動行いたいのです。
アクセスするたびに、画像は変わるため、URLから指定しDLすることは出来ませんでした。
IEオブジェクトの保存したい画像のアイテムは
ie.document.all.item(x)
取得できました、この先がわかりません。
おわかりの方がおられましたらお教えください
0355デフォルトの名無しさん
2007/12/01(土) 20:39:580356デフォルトの名無しさん
2007/12/01(土) 22:12:03URLを見てDLということですか?
アクセスのたびに変わるからNGと記載したのですが・・・
0357デフォルトの名無しさん
2007/12/01(土) 23:58:200358デフォルトの名無しさん
2007/12/02(日) 13:40:06うーんよくわかりません。
そのSRCプロパティのURLからDLすると、画像ファイルが変更されNGなのですが?
0359デフォルトの名無しさん
2007/12/02(日) 16:48:180360デフォルトの名無しさん
2007/12/02(日) 18:02:41下のセキュリティ画像みたいにアクセスすると画像が変わります。
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に表示中の画像がほしいのです
0361デフォルトの名無しさん
2007/12/04(火) 18:18:45それも変数の値が変わる程度で、呼び出し先のCGIは固定だか?
0362デフォルトの名無しさん
2007/12/04(火) 20:44:25VS2005でアセーションエラーが出まして
なぜhMyIEがNULLになるのかがわかりません。
0363デフォルトの名無しさん
2007/12/04(火) 22:56:080364デフォルトの名無しさん
2007/12/04(火) 23:21:29画像のURL指定し、ブラウザで表示させ、更新してもそのたびに変わるのですが?
いったいどう固定すると、画像も固定できるのでしょうか?
0365デフォルトの名無しさん
2007/12/04(火) 23:41:44同じ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);
0366デフォルトの名無しさん
2007/12/05(水) 01:28:410367デフォルトの名無しさん
2007/12/05(水) 11:27:57画像URLは固定でリロードするたびに画像の内容が変わってしまうと言うことか
だからIEコンポで表示させた画像を取得したいと言うわけか
一時キャッシュ覗いて探してみるとか・・・
まぁ無理なんじゃね?
0368デフォルトの名無しさん
2007/12/05(水) 18:48:02解決するためにはどうすればよいですかね?
0369デフォルトの名無しさん
2007/12/06(木) 11:29:13お願いします。
解決方法を教えて下さい。
0370デフォルトの名無しさん
2007/12/06(木) 19:16:38アセーションエラーが出るのは、初期化がいけないのですかね?
0371デフォルトの名無しさん
2007/12/06(木) 20:32:51できた!!!
クハハハハハハwwww
やっべぇwwww何コレwwwww気付かなかった俺バカスwwwww
ありがとうございましたぁ!!
うっひょひょひょwwww
0372デフォルトの名無しさん
2007/12/07(金) 19:12:42子ウィンドウを立ち上げてIEコンポーネントのブラウザを表示させたいのですが、
一度子ウィンドウを消して再度立ち上げるとファイルのダウンロードが発生して表示することができません。
原因に心あたりがある方、教えていただけませんか?
0373デフォルトの名無しさん
2007/12/08(土) 03:35:541.ドキュメント全体をビットマップで保存する
2.特定画像のみビットマップで保存する
3.キャッシュから見つけだして画像を表示する
と、いろいろ試してみたが、そのページのころころ変わる画像はキャッシュされてないっぽいので、
VBでやるなら、1か2になるかなあ
本気でやるならVBじゃなくてC++にしたほうがいいかと
0374デフォルトの名無しさん
2007/12/16(日) 12:04:27最初にabout:blank開いてからIHTMLDocument#write()すると書き込めるけど
特定のアドレスのHTML開いた後にIHTMLDocument#write()すると
いったんHTMLがクリアされて書き込みになる。
javascriptのdocument.writeみたいに、いつでも書き込むことができるインタフェースないですかね。
innerHTMLとかouterHTMLは事情により使いたくないのです。
0375デフォルトの名無しさん
2007/12/16(日) 12:52:00読み込み完了後ならjavascriptのdocument.writeもページの置き換えになる
やってみろ
0376デフォルトの名無しさん
2007/12/16(日) 13:20:440378デフォルトの名無しさん
2007/12/16(日) 16:54:12visible = falseにしとくか
レジストリいじるかしかない
0379374
2007/12/16(日) 16:57:30なるほど、確かにHTML完全に読み終わった後の
javascriptのdocument.writeもページ置き換えになるね。
根本的な部分で理解が欠けていた・・・
ふむーじゃあ何とかしてDocumentCompleteさせなきゃいいのか。
0380デフォルトの名無しさん
2007/12/16(日) 17:21:290381デフォルトの名無しさん
2007/12/16(日) 17:38:58pWB2.setVisible(FALSE);
じゃダメですか?何も変化がないのですが・・・
0382デフォルトの名無しさん
2007/12/16(日) 19:23:51いや、それだと糞重いんで、なんとかしてdocument.write使いたいなと。
iframe src="about:blank"
として、そこに書き出すことで解決!
0383374
2007/12/16(日) 19:30:09あと気になることが。
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);
}
これはサンプルのバグかな。
0384374
2007/12/16(日) 19:31:53VT_BSTRだったら勝手にSysFreeStringをやってくれるんだろうか。
だから先にSysFreeStringしちゃうと2重Freeで落ちるのかな。
0385デフォルトの名無しさん
2007/12/16(日) 20:27:16不可能ではないはず
0386デフォルトの名無しさん
2007/12/16(日) 20:31:310387デフォルトの名無しさん
2007/12/16(日) 23:43:52おしえてエロい人
0388デフォルトの名無しさん
2007/12/16(日) 23:57:04よく見かけるdelphiのコードではレイトバインディングで型変換はシステム任せにして
えいやっとwriteするけれど、きっとディスパッチの手間だけ速度では損するんだろうな。
0389374
2007/12/17(月) 00:01:35あ、おいらへのレス?
about:blankで開いたページならdoument.writeでも切り替わらないよ。
2ちゃんブラウザはたいていabout:blankに書いてるし。
あとはjavascriptでロード時に実行されるように書くか。
0390デフォルトの名無しさん
2007/12/17(月) 12:31:40Vistaにしたら、そうなってしもうた。
>>270の方法で解決しそうだけど回りくどいな。
0391デフォルトの名無しさん
2007/12/17(月) 13:13:13できます
0392デフォルトの名無しさん
2007/12/17(月) 17:10:09いいからその方法をとっとと書けよクズが。
知っててワザとやってるなら性格悪いだけのクズだな。
0393デフォルトの名無しさん
2007/12/17(月) 18:29:350394デフォルトの名無しさん
2007/12/17(月) 19:43:06すごい時刻ゲットしてるからって嫉妬すんなよw
0395デフォルトの名無しさん
2007/12/17(月) 20:56:43IEコンポーネント使う少ない人達同士仲良くしろよ畜生
0396デフォルトの名無しさん
2007/12/17(月) 21:09:38ですか。そうですか。
0397デフォルトの名無しさん
2007/12/17(月) 23:03:59自称糞じゃないお前がじゃんじゃん質問答えろ
手始に387からな、12時間まってやるから早くしろよ
0398デフォルトの名無しさん
2007/12/18(火) 12:51:04>>391さんは性格がいいですね?こうですか?わかりません><
0399デフォルトの名無しさん
2007/12/18(火) 23:41:02つーかキーワードでググったらここの>>235がヒットしたんだが。
0400デフォルトの名無しさん
2007/12/19(水) 14:50:25スレが荒れる。
0401デフォルトの名無しさん
2007/12/20(木) 12:36:32取得するにはどうしたらいいですか?
IHTMLDocument2::elementFromPoint()
で、エレメントを取得できるのはわかったのですが、もっと 1 文字単位で
文字を検出したいのです。できたら、エレメント内あるいはドキュメント全体における
文字の位置がインデックスでわかるとうれしいです。
0402デフォルトの名無しさん
2007/12/20(木) 16:38:01というものではないはず。
血を吐くような努力が必要。てか事実上無理だと思う。
0403デフォルトの名無しさん
2007/12/20(木) 23:32:040405デフォルトの名無しさん
2007/12/20(木) 23:36:14指定座標位置付近の文字をカーソルで選択して
その選択文字列を読み取ればいい。
0406403
2007/12/20(木) 23:50:21君はボンクラ
私は天才プログラマー
ということでいいかね。
0407デフォルトの名無しさん
2007/12/21(金) 03:13:150408デフォルトの名無しさん
2007/12/21(金) 08:06:24http://deftv.atspace.com/?X&1255970&0414?X&1255970&0414@TestX2TV
http://deftv.atspace.com/?X&1255970&0414?X&1255970&0414?X&1255970&0414@TestX3TV
0409デフォルトの名無しさん
2007/12/21(金) 08:07:35Vista 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
0410デフォルトの名無しさん
2007/12/21(金) 08:47:06その指定座標付近の文字を選択ってのはどうやるんだ。
選択時のマウス動作をエミュレートすんのか。
0411デフォルトの名無しさん
2007/12/21(金) 12:28:59精神的ブラクラ
0412401
2007/12/21(金) 12:50:220413デフォルトの名無しさん
2007/12/21(金) 13:07:00カーソルで選択ってものすごい基本的なWindowsAPIじゃん。ウインドウズのプログラマなら誰でも知っているだろ。
マウス動作をエミュレートって・・・アフォカ
0414デフォルトの名無しさん
2007/12/21(金) 15:31:56おお?それはテキスト入力にフォーカス当たった状態のこといってんの?
そうじゃなくブラウザ上のふつうのテキスト部分の話とおもったんだが。
それもできるんか。
0415デフォルトの名無しさん
2007/12/21(金) 16:02:58基本的なことをまったく理解していないな。ブラウザ上で普通に範囲選択してCtrl+Cあるいは、右クリックでコピーが実行できるじゃん。
それをプログラム的に実行するだけ。
0416デフォルトの名無しさん
2007/12/21(金) 16:05:02ぜひ、そのコードを教えてください
0417デフォルトの名無しさん
2007/12/21(金) 21:19:440418デフォルトの名無しさん
2007/12/21(金) 23:05:37その占有領域の座標を取って処理するの。座標から近傍文字、の逆バージョンだけど、
ユーザーが選択操作してなくてもできてたので、この応用でなんとかならないかな?
0419デフォルトの名無しさん
2007/12/21(金) 23:42:100420デフォルトの名無しさん
2007/12/21(金) 23:46:50いやだから、もっと具体的なコードかけよ、そこまでいうなら。
マウスエミュレートもプゲラって言った以上、それもしないコードだぞ?
まず選択するためには、選択始点のテキストがどの座標に存在するか取得しないといかん。
ってかこの時点でこの件は目標は達成なんだが。
0421デフォルトの名無しさん
2007/12/26(水) 10:05:19調べるにはどうしたらいいですか? style とか見ても null なんですが、
他にどこを見ればよいものやら。
0422デフォルトの名無しさん
2007/12/28(金) 13:10:50pWB2->put_Visible(VARIANT_FALSE);
では音は消えませんでした。もう少し詳しく教えて頂けませんか?
0423デフォルトの名無しさん
2008/01/08(火) 16:22:27表示中のサムネイル画像ファイルをキャッシュフォルダから拾う方法はあるでしょうか。
キャッシュフォルダには別名で格納されているようで、特定する方法が分かりませんでした。
作成日やサイズで特定しようにも、確実とは行きません。
直接GETする以外で何か良い方法をご存知の方、ご教示いただければと思います。
0424デフォルトの名無しさん
2008/01/08(火) 19:10:190426デフォルトの名無しさん
2008/01/13(日) 23:43:43InternetSetOption(NULL,.... )だとシステム全体に影響が及んでしまうので、
hInternetを指定して制限をかければいいのだと思いますが
コンポーネントが利用中のhInternetを知る方法が無いので困っています
0427デフォルトの名無しさん
2008/01/14(月) 18:45:46私のソースにはこんなのがありました:
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, pInfo,sizeof(INTERNET_PROXY_INFO),0);
これで動いてたような気がするけど、何年も前のブツなので要検証。
0428デフォルトの名無しさん
2008/01/17(木) 15:01:00データの取得を行うことは可能なのでしょうか?
0429デフォルトの名無しさん
2008/01/17(木) 15:27:090430デフォルトの名無しさん
2008/01/17(木) 15:33:44う〜ん、すると、Windowsサービス化も可能なんでしょうか?
System.Windows.Forms派生のクラスをnewした時点で、
変なことになっちゃうんでしょうか?
Windowsサービスは作ったことないので想像もつかないのですが、
通常、UIはサービスを持てないのですよね?
デスクトップとの対話をサービスに許可、とか設定せずに、
普通のデーモン的なデータ取得を行えると、だいぶ方向性が広がるのですが。
0431デフォルトの名無しさん
2008/01/17(木) 15:36:02>通常、UIはサービスを持てないのですよね?
Windowsサービスは、普通はUIを持てないのですよね。
ユーザがログインしない状況でも、IEコンポーネントでデータ取得を
行えると嬉しいのですが。
0432デフォルトの名無しさん
2008/01/17(木) 21:18:390433デフォルトの名無しさん
2008/01/18(金) 09:07:26結局、何らかのブラウザエンジンは必要になるのです。
まぁ、ゲッコーとかに乗り換えるっていう手はあるのでしょうが、
IEコンポーネントを頑張って使い続けるか、
オープンソースのブラウザエンジンから不要なところをばっさり切って
使うかは、今後の大きな課題にはなるのですが‥‥。
0434デフォルトの名無しさん
2008/01/18(金) 18:48:48そういうことは、人に聞くより自分で試したほうが早いぞ。
0435デフォルトの名無しさん
2008/01/19(土) 12:12:52IEではTAB、SHIFT+TABキーでフォーカスの移動が行われますが、
これを外部から行うにはどうすればいいでしょうか
TABキーイベントを送る、というのはナシの方向で・・・
0436デフォルトの名無しさん
2008/01/19(土) 19:45:220437デフォルトの名無しさん
2008/01/20(日) 03:11:380438デフォルトの名無しさん
2008/01/20(日) 04:34:22IHTMLDocument2::activeElement、
IHTMLElement2::focus
0439デフォルトの名無しさん
2008/01/20(日) 10:06:41面白そうだと思って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するのって、ほんと難しいよな。
0440デフォルトの名無しさん
2008/01/20(日) 10:16:03>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
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
順調かと思ったら、何だこれは…
0441デフォルトの名無しさん
2008/01/20(日) 10:16:18ありがとうございます!
試してみます!
ダイアログのように一発でやる方法があるかとさがしておりました!
0442デフォルトの名無しさん
2008/01/20(日) 10:30:21mshtmhst.h内で定義されてるはずのものなのか、それ以外のどこかなのかは
判らんが、とにかく無い。
0443デフォルトの名無しさん
2008/01/20(日) 10:47:470444デフォルトの名無しさん
2008/01/20(日) 10:49:200445デフォルトの名無しさん
2008/01/23(水) 23:59:25取得したpElementがインラインフレームか
普通のフレームかを判定したいのですが
良い方法はあります?
0446デフォルトの名無しさん
2008/01/24(木) 00:28:360447デフォルトの名無しさん
2008/01/24(木) 01:07:54ありがとうございます
これをヒントに調べてみます
0448デフォルトの名無しさん
2008/01/31(木) 10:55:560449デフォルトの名無しさん
2008/01/31(木) 13:00:15呼び出し元のIWebBrowser2を取得することって出来ないのかな。
複数ウィンドウのブラウザで、IWebBrowser2が複数存在しているので、
グローバル変数では解決出来ない。
スレッドが分かれているわけでもないのでTLSでも解決できない。
0450デフォルトの名無しさん
2008/01/31(木) 16:02:17IWindowForBindingUIでググれ
0451デフォルトの名無しさん
2008/02/09(土) 01:17:35過去ログで見た気もしますが 見つけられなくて・・・
get_innerHTMLでHTMLソースを取った場合はIEが有る程度整形して
ますが これを メニュー → 表示 → ソースで
表示されるようにオリジナルの大文字・小文字もある状態で
取りたいのですが可能でしょうか?
0452デフォルトの名無しさん
2008/02/09(土) 02:09:130454デフォルトの名無しさん
2008/02/09(土) 23:24:16IOleCommandTarget::Execで
OLECMDID_SHOWSCRIPTERRORを使うのでしたら、
どのように使うのか教えていただきたいです。
【関連事項】
AtlhostEx.h
ScriptErrorCommandTargetImpl.h
DialogKiller.h
0455デフォルトの名無しさん
2008/02/10(日) 00:54:23http://zoomtv.atspace.com/?G&1zbuh@HiSpeedVision
0456デフォルトの名無しさん
2008/02/12(火) 13:40:22としたときにsubmitやクリックできますか
0457デフォルトの名無しさん
2008/02/27(水) 13:53:42開くようになったんですが、IEコンポーネントを使った
あぷりでは、これは自分で書くしかないんでしょうか?
それとも簡単に有効にする方法があるんですか?
知っている方いましたら教えてください。
0458デフォルトの名無しさん
2008/02/27(水) 14:41:58真ん中ボタンクリックで新規ウィンドウはIEに実装されただけのもの。
IEコンポーネント自体にそういう機能があるわけではない。
0459デフォルトの名無しさん
2008/02/27(水) 14:48:16ありがとう。
ということは自分でやるしかないんですね。
かなり大変そうですけど・・
0460デフォルトの名無しさん
2008/02/27(水) 15:53:19おいおい、ボタン押してウィンドウ開くなんて大した手間じゃないだろう
0461デフォルトの名無しさん
2008/02/27(水) 17:46:36AtlAxGetControl
AtlAxGetHost
>>460
新しいウィンドウで開くとなると結構処理が必要じゃない?
0462デフォルトの名無しさん
2008/02/28(木) 11:28:490463デフォルトの名無しさん
2008/03/01(土) 04:18:40どういうコード書けばいいのか参考になるサイトとかないですか
探し方が悪いのかATLなコードしか見つからないんです。
0464デフォルトの名無しさん
2008/03/01(土) 04:27:150465デフォルトの名無しさん
2008/03/01(土) 05:01:32DWebBrowserEvents2のこと? だったら普通にOLEコントロール扱うようにすればいけるんじゃね?
まあMFCとかATLとか使わずにやろうとすると死ぬほど面倒らしいが。
0466デフォルトの名無しさん
2008/03/01(土) 06:19:08うん、DWebBrowserEvents2。
WindowsMobile版のIEコンポーネントを使ってるんだけど、
ATLでの実装がコンパイル通らなくて、
ATLなしでの実装にするか・・・?ってとこにたどり着いたとこ。
死ぬほど面倒ならATLが通る方法調べるほうが楽かなぁ。。
0467デフォルトの名無しさん
2008/03/01(土) 06:20:390468デフォルトの名無しさん
2008/03/01(土) 06:29:490469デフォルトの名無しさん
2008/03/01(土) 08:03:29あと接続ポイント周りをちゃんと理解すると光が見えるかも。
0470デフォルトの名無しさん
2008/03/01(土) 10:10:11Essential COMに載ってるよ。ネストクラスしたりとかなり面倒だったけど
ATLなし(Win32SDKのみ)でイベント取得までは確認できた。
0471デフォルトの名無しさん
2008/03/01(土) 10:50:340472デフォルトの名無しさん
2008/04/17(木) 02:59:40無効にする方法ってありますか?
0473デフォルトの名無しさん
2008/04/17(木) 22:50:05俺はやったことないけど、使っているブラウザ (Donut RAPT)が
ボタン1つでオンオフできる機能を持っている。
0474デフォルトの名無しさん
2008/04/24(木) 20:30:33自動で実行するのはどうしたらできますか?
0475デフォルトの名無しさん
2008/04/27(日) 02:08:05メモリリークしていると思ったほうがいいのでしょうか?
それとも履歴蓄積によるものと考えてしまっていいのでしょうか?
0476デフォルトの名無しさん
2008/04/27(日) 02:28:31メモリリークっていうか、開放し忘れじゃね?
よくあるみたいだよ。
0477デフォルトの名無しさん
2008/04/27(日) 03:49:52一旦アプリを最小化すると開放されたようになる。
本当にリークしてるのか、本当に開放されてるのか、分からないけどね。
0478デフォルトの名無しさん
2008/04/27(日) 12:15:51最小化すると減るのはワーキングセットの量。
0479デフォルトの名無しさん
2008/04/29(火) 08:38:59メモリリークしてるとは限らない。
ttp://kkkon.hp.infoseek.co.jp/tips/MFC/MemoryLeak.shtml
この辺参考にしてみるといいかもね。
0480デフォルトの名無しさん
2008/05/08(木) 17:50:120481デフォルトの名無しさん
2008/05/08(木) 19:30:41同じページを開かせるようなプログラムを作ったんですけど
CComQIPtr<IWebBrowser2> pWB2
pWB2->Navigate2(メッセージで送られたURL)
としてURLにジャンプしようとすると、
「"URL"が見つかりません。パスまたはインターネットアドレスが正しいかどうかを確認してください。」
というメッセージボックスが表示され、メッセージ受信側のクライアントはURLにジャンプできません。
IEコンポーネントで表示させた、そのURLのハイパーリンクを直接クリックした時や
直接IEを起動してアドレス直打ちをした場合、正しくページに飛ぶことが出来ました。
また、メッセージ受信側がIE7を入れている場合ではジャンプできない現象が起きましたが
IE6を入れているPCで試したところ、メッセージ受信側もジャンプすることが出来ました。
IE7になってからNavigate2周りで何か変更があったのでしょうか。
おとなしくIE6に戻るしかありませんか?
0482デフォルトの名無しさん
2008/05/09(金) 02:27:06可能でしょうか?HTMLは自分で用意したものです。
0483デフォルトの名無しさん
2008/05/09(金) 20:27:54できるよ。
スクリプトを動的に追加することができるから追加したコードで静的なコードを実行すればいい。
HTMLを自分で用意するんだったらIEコンポーネントでやる用途が想像できないけど?
0484デフォルトの名無しさん
2008/05/10(土) 04:39:22http://homepage3.nifty.com/LILILIN/HOWTO/activex_javascript.htm
このページの情報を参考にして実装する事ができました。
では逆にHTML側から、ブラウザ(アプリケーション)の関数を実行する事は可能でしょうか?
さすがに無理ですかね、それは・・・
0485デフォルトの名無しさん
2008/05/10(土) 06:30:53window.external経由ならわりと楽勝で。
0486デフォルトの名無しさん
2008/05/18(日) 09:43:36IE保護モードがじゃまして書き込めねぇ・・・
いくつかMSのサイト読んでレジストリいじったりしたが、相変わらず駄目だ
誰かやり方おしえて。
0487デフォルトの名無しさん
2008/05/18(日) 12:21:050488デフォルトの名無しさん
2008/05/19(月) 09:31:02http://www.microsoft.com/japan/msdn/ie/general/protectedmode.aspx
書き込み時に、ブローカープロセスの昇格ってのが出るようにできるっぽいけど、
ここにあるようにレジストリに書いたがうまくいかん。
0489デフォルトの名無しさん
2008/05/19(月) 09:37:46うう、めんどくせー
0490デフォルトの名無しさん
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);
0491デフォルトの名無しさん
2008/05/23(金) 19:58:46HTMLID_FINDでググれ
http://support.microsoft.com/?scid=kb%3Ben-us%3B175513
0492デフォルトの名無しさん
2008/05/27(火) 02:44:37その ページ内で window.close() を 呼んだら
ダイアログ自体を終了するようにしたいのですが、 WebBrowserEvents
のイベントを取得するような方法しかないのでしょうか?
0493デフォルトの名無しさん
2008/06/07(土) 17:33:24DWebBrowserEvents の Document Complete 後に
Document に script タグを追加しようとしているのですが、
追加されません。
このやり方だとだめなのでしょうか?
どこかにサンプルがあったりしますか?
0494デフォルトの名無しさん
2008/06/13(金) 19:11:21HTMLを解析したいのでIHTMLDocument2を使おうと思っています
CComPtr<IHTMLDocument2> aDoc;
aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT);
aDoc->put_URL(CComBSTR("http://~")); //URLの読み込み(のつもり)
aDoc->get_images()
この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。
まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。
コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
0495デフォルトの名無しさん
2008/06/13(金) 19:23:39ここにサンプルがあったよ
ttp://d.hatena.ne.jp/seraphy/20061124#p3
0496デフォルトの名無しさん
2008/07/23(水) 00:24:40効きません助けてください!
IOleInPlaceActiveObject::TranslateAcceleratorもメッセージループ内に入っています!
0497デフォルトの名無しさん
2008/07/23(水) 09:21:35どうやって解決したか思い出したら書き込むよ。
0498デフォルトの名無しさん
2008/07/23(水) 11:55:03戻る、進むことが出来るか否かを判断するにはどうすればいいんですか?
IWebBrower2のメソッドにそれらしき関数が見当たらなかったんだけど
0499デフォルトの名無しさん
2008/07/23(水) 20:05:140500デフォルトの名無しさん
2008/07/24(木) 18:42:51遅レスですがありがとうございました!
0501デフォルトの名無しさん
2008/07/24(木) 20:13:24DWebBrowserEvents2のDISPID_NEWWINDOW2イベントで、
新しく開く遷移先のアドレスを知るためにはどうしたらいいんですか?
OnNewWindow2のハンドラでIEが立ち上がるのをキャンセルするまでは分かったんで巣が。。
Donutのソースみたけどいまいち分かりませんでした・・・
0502デフォルトの名無しさん
2008/07/25(金) 19:21:060503デフォルトの名無しさん
2008/07/28(月) 14:53:440504デフォルトの名無しさん
2008/08/08(金) 20:08:34IE7が入っているPCで正しい動作をしてくれません。
ttp://www.nitoyon.com/vc/tips/ie_component.htm
このサイトを参考にC++(VC++)でIEコンポーネントを呼び出しています。
調べてみると、どうやらIE7でNavigate2を呼び出すと
正しくページに移動できないみたいですね。
色々調べてみたんですけど、VC++でのIEコンポーネントの使用で
IE7に対応させるような方法が分かりません。
IE7環境でVC++からIEコンポーネントを呼び出して
正しくページ移動できるようなプログラムは可能でしょうか。
0505デフォルトの名無しさん
2008/08/09(土) 16:49:59Microsoft Web Browserコントロールのセキュリティを制御する:CodeZine
0506デフォルトの名無しさん
2008/08/09(土) 18:40:030507デフォルトの名無しさん
2008/08/27(水) 22:13:09AtlAxCreateControlExを使用した方法だとうまくいきますよ。
0508507
2008/08/27(水) 22:19:03補足すると、タブを使用しない。キオスク端末見たいなことをやりたければ、
AtlAxCreateControlExを使用した方法で作れます。
0509デフォルトの名無しさん
2008/08/31(日) 16:14:380510デフォルトの名無しさん
2008/09/14(日) 12:25:13IDispatchExの利用方法で分からない事があります。
IEコンポーネントのGetDocument()で得られるIHTMLDocument2をQIして
IHTMLDocumentを取得しました。
さらに、get_Script()で得られるIDispatchをQIし、IDispatchExを
取得しました。
こうして得られたIDispatchExを利用して、HTMLのオブジェクトにアクセス
可能な事を確認しました。しかし、JavaScriptで
window.hoge = 1;
foo = 2;
と書いてある場合、hogeにはアクセス出来ますが、fooにはアクセスできません。
windowオブジェクトに明示的に代入したオブジェクトにしかアクセスできない
ようです。
どうすれば、fooにアクセスできるでしょうか。
0511デフォルトの名無しさん
2008/09/21(日) 12:02:52厳密に調査したわけではないが、アクセスタイミングによるものだと思う。
windowオブジェクトは、初期状態で存在しているため、
直にアクセスできるのだと思われる。
全てのイベントを拾って、ポーリングすればアクセスできるタイミングが分かるはず。
試しに html側 head内にてvar i=1000を定義、body onloadにて、
iを初期値と比較して結果を出す関数を作成。
全てのイベントを拾って、GetDispID( 変数名, fdexNameCaseInsensitive, &dispID )
を実行して、DISPID_UNKNOWN != dispIDが成立したら関数InvokeExにて値を変更したら
onload関数の結果が変わるのを確認した。
0512デフォルトの名無しさん
2008/09/26(金) 12:43:09表示中のHTMLの任意のタグの内容を取る方法って何ですかね?
例えばクリック→srcElement取得ってどうやったらいいのか・・・。
0513デフォルトの名無しさん
2008/09/27(土) 01:17:13メンバ関数elementFromPointでできると思う。
0514デフォルトの名無しさん
2008/09/27(土) 22:09:26所定のパスにできないですよね。
これを解決しようと奮起してます。
ファイル書き込み部分をCOM化しようとしてるんですが、
どうにもうまくいきません。
http://msdn.microsoft.com/en-us/library/bb250462.aspx
ここを読んだんですけど、
If your extension launches a COM server
that is not registered in HKEY_CLASSES_ROOT,
gets dynamically registered through COM and launched via CoCreateInstance,
add a REG_SZ value called IID containing the CLSID of the COM server,
add the following setting to your policy.
IID (REG_SZ) contains the CLSID of your extension.
これって、BHOのCOMコンポーネントのCLSIDを
レジストリのElevationPolicy以下に登録するんじゃないんですかね。
ファイル書き込みのCOMを生成した瞬間にダイアログが出ることを期待してるんですが、
ぜんぜんそうなりません。
0515514
2008/09/27(土) 22:11:01ファイル書き込みのCOMを別のEXEサーバーにおいて、
BHOから呼び出したんですが、COM生成はできても、
ちょっとするとEXEサーバーから勝手に切断されてしまいます。
どうしていいのか、さっぱりわかりません・・・
0517hiro
2008/10/08(水) 14:47:16http://www.nitoyon.com/vc/tips/ie_component.htm
のサンプルコードを落として VS.net 2003 Standardで
開いてビルド実行、アドレスバーに打ち込んでGOを押しても
メッセージが出て(atlcomcli.h Line148)で
実行時にエラーになります。
comは初心者でよく分かりません。
どなたか対処法をご存知ないでしょうか?
どうかよろしくお願いします。
0518デフォルトの名無しさん
2008/10/08(水) 17:40:03そこの「VC++.NETでの注意点」ってとこ読んだか?
0519hiro
2008/10/08(水) 18:50:31昔会社でやってた頃、VC6.0のときは作動できたのですが、
なぜか自宅のVC++.net 2003 Standardではエラーが出るのです。
0520デフォルトの名無しさん
2008/10/09(木) 16:40:56該当サイトのサンプルをダウンロードして、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 );
}
省略
0521デフォルトの名無しさん
2008/10/11(土) 22:58:55VC++ 2005、WinXPでプログラムを組んでいますが、あるhtmlファイルからanchorタグを読み込み、リンク先のページを取得したいと思います。
一々、自作のライブラリでリンク先を検出するようだと、作成時間がかかって仕方ないので、どなたか、htmlをパースしてリンク先のアドレスを取得できるような
ライブラリや関数などをご存知の方、教えていただけないでしょうか?
----
c++相談室から誘導されてきました。
よろしくお願いします。
0522デフォルトの名無しさん
2008/10/11(土) 23:10:07正規表現かなんかで抽出したほうがはやくね?
0523デフォルトの名無しさん
2008/10/11(土) 23:18:16正規表現だとboost辺りかな……
とりあえず、boost使ってみることにします。
どうもありがとうございました
0524デフォルトの名無しさん
2008/10/12(日) 13:17:44VSのプロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド
にiexplorer.exeのパス書いて、デバッグ実行すると、
IEが起動して自動的にアタッチしてくれる。
それはいいんだが、なぜかそうやって起動するとIE7+Vistaでの保護モードが無効になってしまう。
その状態でインターネットオプション見ても保護モードにチェックは入ってるのに。
普通にIE起動したら保護モード。
誰か理由説明できる人いる?
0525デフォルトの名無しさん
2008/10/12(日) 14:12:100526デフォルトの名無しさん
2008/11/12(水) 03:01:30どうもうまくいかないのでレジストリのキー検索してみた。
すると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
0527デフォルトの名無しさん
2008/11/12(水) 03:54:47These are interfaces that you implement in your application when you want to modify the WebBrowser Control.
0528もう見てないよな?
2008/11/14(金) 23:05:07> マジっすか……
> 正規表現だとboost辺りかな……
>
VCならRegExpをCOM経由で使えば正規表現がつかえるらしい
VCで正規表現 (要IE5.5以上)
ttp://page.freett.com/mortes/prog/regexp.htm
「IE5.5以上」なんで条件を満たしていないWindowなんてあるの?
0529デフォルトの名無しさん
2008/11/14(金) 23:33:380530デフォルトの名無しさん
2008/11/15(土) 18:48:42IE5.0だろ
素のWindows2000だろ
0531デフォルトの名無しさん
2008/11/15(土) 21:27:320532デフォルトの名無しさん
2008/11/20(木) 10:06:31NavigateComplete2でSetUIHandlerはイクないみたいなことが色々書いてありますし、
それでは初めてのNavigateの時にはXPスタイルを適用できないみたいですし・・・
GWL_USERDATAをGetWindowLongでIAxWinHostWindowを取得してSetExternalUIHandlerでも出来ないことも無いですが、
D&Dが使えなくなるっぽいなのでこちらもだめみたいです
0533デフォルトの名無しさん
2008/11/20(木) 10:55:090534532
2008/11/20(木) 11:41:01ごめんなさい
0535デフォルトの名無しさん
2008/11/20(木) 11:57:27>>533は「無償配布されてるPlatform SDKを入れてみろ」って言ってるんだと。
0536デフォルトの名無しさん
2008/11/20(木) 12:06:41Platform SDKは既に入れてありますが、MFCのソースはどこにありますでしょうか?
mfcディレクトリにはヘッダしか見受けられませんが・・・
0537デフォルトの名無しさん
2008/11/20(木) 13:02:220538532
2008/11/20(木) 13:23:30本題に戻って、お願いします
0539デフォルトの名無しさん
2008/11/20(木) 16:57:23ttp://msdn.microsoft.com/en-us/library/aa770041.aspx
0541sdaf
2008/11/26(水) 16:16:560542デフォルトの名無しさん
2009/01/08(木) 18:22:370543デフォルトの名無しさん
2009/01/11(日) 15:33:39方法が分かる方はいらっしゃいますでしょうか?
いろいろ調べて、試してみたりしたのですが、どうしてもうまくいかないのです…
0544デフォルトの名無しさん
2009/01/11(日) 19:13:07考えています。
IEコンポで指定のページまでは簡単に表示出来たのですが、
フォームに文字(ID/PASS)を入力したり、ボタンをクリックしたりする
のはどうやったらいいのでしょうか?
参考になるソースなどあるサイトなどあったら教えて下さい。
0545デフォルトの名無しさん
2009/01/11(日) 20:12:13普通はそういう面倒なことはせずに直接自分でフォーム送信時に送られるリクエストを作成するだろうな。
0546デフォルトの名無しさん
2009/01/16(金) 23:22:51亀だが「AtlAxWin」の部分をVSのVerにあわせてみては?
参考URL
ttp://fssblog.blog50.fc2.com/blog-entry-219.html
0547デフォルトの名無しさん
2009/01/31(土) 11:54:03<input type="button" value="test" onClick="gotoPage();">
</form>
上の例でボタンを押した時、gotoPage(); を実行させたいんですが
初心者なんでよくわかりません
pCollection = pDocument->getElementsByName( _bstr_t( L"namae" ) );
MSHTML::IHTMLFormElementPtr pForm( pCollection->item() );
pForm->submit();
だと、gotoPage(); が実行されないみたいです
誰か教えて下さい。・゚・(つ_⊂)・゚・。ウェーン
0548デフォルトの名無しさん
2009/01/31(土) 16:35:51vHtmlDocument: 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;
上記のインターフェース使って
やる・・・・
0549デフォルトの名無しさん
2009/02/18(水) 13:55:20>>517 じゃないけど助かりました!
0550デフォルトの名無しさん
2009/03/16(月) 02:31:520551デフォルトの名無しさん
2009/03/22(日) 02:24:55INPUT TYPE="FILE"
に設定するのに今までフォーカスを当ててからSendKeyを使っていたのですが、どうやら駄目になった模様・・・
解決方法はあるのでしょうか
0552デフォルトの名無しさん
2009/03/22(日) 21:29:340553デフォルトの名無しさん
2009/03/23(月) 10:21:370554デフォルトの名無しさん
2009/03/23(月) 22:46:490555デフォルトの名無しさん
2009/05/18(月) 21:54:46execwbで張り付けとか?
0556デフォルトの名無しさん
2009/05/19(火) 20:22:250557デフォルトの名無しさん
2009/05/19(火) 21:04:35clickしてダイアログにsendkeys
0558デフォルトの名無しさん
2009/05/20(水) 01:55:30インターネットオプションでセキュリティ緩め
0559デフォルトの名無しさん
2009/05/22(金) 03:00:50独自の項目を追加したいんですが、どうやるのかやさしく教えてください。
googleツールバーの「カスタム検索を実行」的な感じにしたいのですが・・・
一行のテキストフィールドだけにでてくるのかな?これ・・・
0560デフォルトの名無しさん
2009/05/22(金) 19:57:49KB177241
0561デフォルトの名無しさん
2009/05/28(木) 01:43:26グーグルってこの方法なの?レジストリにないみたいだけど・・・
この方法で階層付きのメニューとかも追加できる?
Item0_0 > Item1_0
> Item1_1
みたいな
0562デフォルトの名無しさん
2009/06/09(火) 21:56:520563デフォルトの名無しさん
2009/06/09(火) 22:56:58GoHomeじゃだめなの?
0564デフォルトの名無しさん
2009/06/09(火) 23:13:540565デフォルトの名無しさん
2009/06/09(火) 23:55:440566デフォルトの名無しさん
2009/06/10(水) 16:23:220567デフォルトの名無しさん
2009/06/10(水) 20:59:540568デフォルトの名無しさん
2009/06/11(木) 12:31:560569デフォルトの名無しさん
2009/06/15(月) 13:45:28現在 get_outerHTMLにてソースの保存を行っています。
ただ、これですとIEが成形したHTMLソースしか取り出せません。
たしか、他にやり方があって、それを使えばコメント等も
忠実に取れるのですが忘れてしまって・・・
当時の仕様は実際IEが扱っているHTMLソースでOKだったのすが
仕様変更で検索しても見つからず困っています
たしか、OLE等でメニューを操作する系だったと思ったのですが
どなたか ご存知の方がいましたら教えてください
0570デフォルトの名無しさん
2009/06/15(月) 14:16:430571デフォルトの名無しさん
2009/06/15(月) 23:06:57↓はソフマップの中古買取価格を調べる目的で、Donutのserchi.iniに記載しているものです。
これをアクセラレータに移行させようと思うんですが…
http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/KWD=(このあとに目的の商品名)
↑の「tid=SPSF」「gid=SPSF030200」みたいのが複数あって、しかもURLの途中に出てくる場合の
記述がよくわかりません。
最後は<parameter name="KWD" value="{selection}" />でいいと思うんですが…
0572デフォルトの名無しさん
2009/06/15(月) 23:17:28ttp://msdn.microsoft.com/ja-jp/library/cc287851(vs.85).aspx
そのまま書けばいいんじゃね?
0573571
2009/06/15(月) 23:34:59そのままだとソフマップのページから「検索条件を入力して下さい。」というメッセージが出て、
弾かれてしまうんですよ。
<activityAction context="selection" >
<execute action="http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/">
<parameter name="KWD" value="{selection}" />
</execute>
</activityAction>
とりあえずMSのドキュメントまた読み直してみます。
0574デフォルトの名無しさん
2009/06/16(火) 01:20:48<os:execute method="get"
action="http://www.sofmap.com/spkaitori/search_result/exec/_/tid=SPSF/-/gid=SPSF030200/-/KWD={selection}" />
これじゃだめなの?8入れてないから検証できない
0575デフォルトの名無しさん
2009/06/16(火) 01:37:04URL直接見れる?KWDの前に"?"が入ってないか?
直接見れないならパケットモニタで見てみろよ
もしそれなら>>574でいけるはず
文字が化けるならexecute 要素で accept-charset="Shift_JIS"とか試して見れ
0576デフォルトの名無しさん
2009/06/21(日) 17:01:32DocumentCompleteのタイミングで
現在のドキュメントがフレームの子かどうか調べれるでしょうか?
0577デフォルトの名無しさん
2009/06/21(日) 17:11:48http://support.microsoft.com/?scid=kb%3Bja%3B180366
機械翻訳だから英語の方を見た方がいいかもね
0578デフォルトの名無しさん
2009/06/21(日) 21:46:00なっている部分のHTMLソース上の位置を知りたいのですが、どうすればいいのでしょうか?
FireFoxではテキストを選択状態にしてその部分を右クリックすると「選択した部分のソースを表示」という
メニューが選べるようになっていて、それと同じようなことをしたいのです。
選択位置の知り方は、HTMLソース上の文字位置(バイト位置)でもいいですし、
DOM上の何番目のタグのinnerTextの何バイト目か?ということでもいいです。
ご存じの方教えてください。
0579デフォルトの名無しさん
2009/06/21(日) 22:19:03http://msdn.microsoft.com/ja-jp/library/ms535869(en-us).aspx
0580デフォルトの名無しさん
2009/06/21(日) 22:52:20それでいけそうな気がします。ありがとうございました。
0581デフォルトの名無しさん
2009/06/21(日) 23:44:440582デフォルトの名無しさん
2009/06/22(月) 05:58:10>>577
ありがとうございます。
早速みてみます。
納期がせまっていたので助かります
0583578
2009/06/22(月) 22:52:30できました。下のページのソースコードが参考になりました。
http://starkravingfinkle.org/blog/tags/uncategorized/page/3/
ハイライト部分のテキストを加工した後、HtmlDocumentの<body>をget_bodyで取り出して
outerHTMLでソース保存したら希望のことができました。
0584デフォルトの名無しさん
2009/07/04(土) 18:51:080585デフォルトの名無しさん
2009/07/05(日) 14:41:41CHtmlViewでHTML文書のリンク部分をクリックしてもリンク先に飛ばないようにできないでしょうか。
やりたいことは、リンク部分のテキストの一部をマウスでなぞって選択してコピーしたいのです。
しかし選択しようとしてクリックした段階でリンク先に飛んでしまいます。
CHtmlViewの親Wnd側のPreTranslateMessageの中でWM_LBUTTONDOWNを処理しないようにしたら、
テキストが選択できないようになり、これはダメだと分かりました。
0586デフォルトの名無しさん
2009/07/05(日) 15:13:510587デフォルトの名無しさん
2009/07/05(日) 15:20:590588585
2009/07/05(日) 15:30:27しかしマウスでなぞってもリンク文字の一部分だけを選択することができず、、、orz
リンクとしての見栄えを保ったまま一部分だけコピーするのはどうも無理っぽいですね。
>>586さんのような方法にせざるを得ないと思います。
0589デフォルトの名無しさん
2009/07/08(水) 21:15:34IEで、Ctrl+Nでウィンドウの新規作成を行った時と等価な状態(セッション情報等を継承)で、
WSHでIEのウィンドウの新規作成を行い、
かつそのIEのウィンドウのオブジェクトIDを得るにはどうしたら宜しいでしょうか?
0590デフォルトの名無しさん
2009/07/08(水) 22:17:40読み込み時等のエラーの際に独自のhtmlを読ませる処理を考えてます。
HTTPステータスをチェックしようと考えてますがWEBを探してもなかなか
見つかりませんでした。_| ̄|○
IEコンポーネントを使った際にステータスコードを拾うことは可能でしょうか?
InvokeでHTTPステータスをチェックして別のhtmlを読ませようと考えてます。
0591デフォルトの名無しさん
2009/07/09(木) 01:03:12Shell.applicationはIEでないのでスレちがい
0592デフォルトの名無しさん
2009/07/09(木) 23:34:030593デフォルトの名無しさん
2009/07/16(木) 07:13:32>>590
IE6では、404はとる事は可能。5xx系は試したことが無いのでわからない。
>>InvokeでHTTPステータスをチェックして別のhtmlを読ませようと考えてます。
まさにこのとおりだよ。
以下のような感じ。
IWebBrowser2からIID_IConnectionPointContainerを取り
IID_IConnectionPointContaineから、FindConnectionPoint( DIID_DWebBrowserEvents2)を実行して
DIID_DWebBrowserEvents2からAdviseを使用して自作したInvokeを登録する。
これにより、登録したInvokeがステータス後とに実行される。
0594デフォルトの名無しさん
2009/07/17(金) 21:25:39環境はVS2005SP1、IE7です。
例えば以下のようなHTMLファイルを作っておきます。
<html><body><ruby><rb>糞</rb><rt>くそ</rt></ruby>IE</body></html>
このHTMLファイルをCHtmlViewにドロップして表示します。
そして以下のコードを実行します。
IHTMLDocument2* doc = (IHTMLDocument2*)m_htmlview.get_Document();
IHTMLElement *body;
doc->get_body(&body);
CComBSTR tmp;
body->get_innerHTML(&tmp);
body->put_innerHTML(tmp);
body->get_innerHTML(&tmp);
body->Release();
doc->Release();
::OutputDebugString(tmp);
これは<body>内部をget_innerHTMLで取り出し、そのままput_innerHTMLで書き込み、またget_innerHTMLで取り出すだけのものです。
<body>内部のコードがそのまま取り出せたら正解ですが、なぜか結果は、
<RUBY>糞</RB><RT>くそ</RT></RUBY>IE
となるのです。
<RUBY>の後の<RB>が消えるのです。
いろいろ試したところ、<body>の最初に出てくる文字にルビを振ると、その部分だけ<RB>が消えることが分かりました。
他にもいろいろとIHTMLDocuent2がらみで不可解な動作が多いです。
0595デフォルトの名無しさん
2009/07/25(土) 20:30:54HTMLドキュメントの読み込み完了のイベントを取得したかったので、しかるべき場所に
SINK_ENTRY_EX(SINKID_COUNTEREVENTS, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)
void _stdcall OnDocumentComplete(){
MessageBox(NULL, "COMP", NULL, NULL);
return;
}
を追加しました。すると、プログラム実行時に
Debug Assertion Failedというエラーが出るようになってしまいました。
何か間違っているでしょうか?
ちなみにエラーダイアログにはExpression: ((HRESULT)(hr) >= 0)と表示されています。
0596デフォルトの名無しさん
2009/07/26(日) 01:12:55Debug Assertion Failedのダイアログにエラーの起こったソースファイルと
行番号が書いてあるはずですが?
0597デフォルトの名無しさん
2009/07/26(日) 03:03:21みたいに引数を入れたらエラーが出なくなりました。失礼しました。
>>596
このエラーの場合、大体問題のある箇所とは全く関係ないソースファイルの行番号が出るんです・・・。
0598デフォルトの名無しさん
2009/07/26(日) 08:59:08結論を言うと引数を設定しなかったことにより、スタック不整合による破壊が発生し、
OnDocumentCompleteから戻るときに不定の位置へ実行が戻っている為。
0599デフォルトの名無しさん
2009/07/27(月) 01:00:42IShellWindowsPtr で現在開いているタブについては取得&操作できるのですが.
0600デフォルトの名無しさん
2009/07/27(月) 03:30:560601デフォルトの名無しさん
2009/07/27(月) 16:41:490602デフォルトの名無しさん
2009/07/27(月) 19:11:57なるほど、わかりやすいです。
でも、コンパイルの時点で警告して欲しいですね。
0603デフォルトの名無しさん
2009/08/03(月) 12:03:04<body>
・
・
・
<h4>porfile</h4>
<p> プロフィール本文 </p>
・
・
・
</body>
こんな感じの既存HTMLファイルがありまして、<h4>の直後の<p>テキストが取得したいです
idはまったく振ってなくて、getElementByID等では取れない状態です
<h4>profile</h4>は必ず一つしかないので、それは取れるのですが・・・
getElementで取ってきたタグの「次の」タグを取る方法は無いのでしょうか?
よろしくお願いします
0604デフォルトの名無しさん
2009/08/03(月) 16:35:240605デフォルトの名無しさん
2009/08/04(火) 13:09:10それはHTMLDOMNodeにしかなく、これを返す検索系ファンクションが無さそうでしたが
foreachの力業で何とかしました
多少ダサいですが要求仕様は満たせたのでよしです
ありがとうございました
A. 外部サイトへの突撃大好きな真性厨房
韓国突撃でお馴染みの自動保守
最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々
だがそんな彼にも、人間らしい部分はあったのだ…
名言集
『アパッチ砲はワシが作った』
『お前が規制系キャップ取れるか審査してやるよ』
『いつもサボってばかりのキャップがウゼえ』
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
『俺の経歴カックイイだろ?』
最近のニュース
8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた
本人は体調不良と言っているが…
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
0607hasegawa1.isl.titech.ac.jp
2009/09/01(火) 13:04:27検知すれば良いでしょうか?色々と試していますが
1)親をTabウィンドウとしていますがWM_SIZEメッセージ受け取れず
2)IWebBrowser2へのシンク→DocumentCompleteは拾えるがWindowResizeは反応無し
3)HTMLElementEvents2のシンク→OnClick等は拾えるがOnResizeは反応無し
上記1〜3でできるはず、もしくは他の方法でもご存じの方お願いします。
他の良い方法もありそうですがメッセージフックで解決できました。
0609デフォルトの名無しさん
2009/09/06(日) 20:35:51自タブをアクティブにする方法は?
0610デフォルトの名無しさん
2009/09/08(火) 03:24:09ctrl+nはexecwb olecmdid_new?
0611デフォルトの名無しさん
2009/09/10(木) 18:21:32特定のXHRによる通信をホストかBHOで捕まえて
リクエストヘッダやコンテンツを書き換える方法をご存知の方おられませんか?
0612デフォルトの名無しさん
2009/09/18(金) 00:09:57RedyStateがCompleteしたり、BusyがFalseした後に印刷しましたが、描画が完了しないものを印刷してしまいます。
javascriptの完了をどのように認識したらいいでしょうか?
たとえば、https://www.creditportal.ratingsdirect.com/spd/Login.doのようなページで教えていただけると幸いです。
0613デフォルトの名無しさん
2009/09/18(金) 01:00:31C++でCOMコンポーネントを使うのは鬼のように難しいですね。
0614デフォルトの名無しさん
2009/09/18(金) 08:06:00C++Builderなら労力はVC++の1/20くらいになる。
マイナーだけど・・・
0615デフォルトの名無しさん
2009/09/19(土) 01:15:46IHTMLDocument2のインターフェースを取得してから、2ch書き込みフォームのMESSAGEやFROMを更新するまでの
道のりが長いのに驚いた。
IHTMLDocument2→IHTMLElementCollection→IDispatch→IHTMLFormElement→
てな感じでインターフェースを取得して、渡り歩かないといけない。
VBならIE.Document.Form(0).Item("MESSAGE").value="テスト"と、ダイレクトにアクセスできるのに。
0616デフォルトの名無しさん
2009/09/19(土) 01:27:150617デフォルトの名無しさん
2009/09/19(土) 02:24:540618デフォルトの名無しさん
2009/09/24(木) 19:59:500619デフォルトの名無しさん
2009/09/27(日) 13:39:36これに参照ボタンを押さないで入力する方法はないのでしょうか?
信頼済みサイトに登録すれば大丈夫と思ったのですが、できません。
0620デフォルトの名無しさん
2009/09/27(日) 14:52:230621デフォルトの名無しさん
2009/09/27(日) 17:38:140622デフォルトの名無しさん
2009/09/28(月) 01:47:42ファイルパスを書き込もうとしています。
下記のようなコードを書いているのですが、どうもうまく書き込まれません。
解決法がありましたらご教授ください。
webBrowser.Document.All.GetElementsByName("fileUp")[0].Focus();
SendKeys.SendWait(filePath);
0623デフォルトの名無しさん
2009/09/28(月) 15:51:46参照ボタンを押す
0624デフォルトの名無しさん
2009/09/28(月) 16:03:32webBrowser.Document.All.GetElementsByName("fileUp")[0].click();
0625デフォルトの名無しさん
2009/10/05(月) 14:41:420626デフォルトの名無しさん
2009/10/14(水) 21:29:130627デフォルトの名無しさん
2009/10/19(月) 16:29:400628デフォルトの名無しさん
2010/03/06(土) 06:09:37どこかにいい本ないかな・・・。
CHtmlViewで
1.選択して右クリックしたときにメニューに独自処理を追加。(コピー、すべて選択、は残して)
2.リンクにカーソルを合わせたときにバルーンを表示
というのがやりたいのですが難航中です。
1. は PreTranslateMessage() 使えば横取りできるのは分かったのだけど
そこからサパーリ。
2.は前スレの>>400-418に CToolTipCtrl を使えば、とあるのですが単独の出し方が分からない・・・。
IEコンポーネントを使い倒すスレ
http://pc5.2ch.net/tech/kako/982/982930049.html
Janeのソース(Pascal)も見てみたのですが独自にWindowを作ってるような感じでした。
0629デフォルトの名無しさん
2010/03/06(土) 08:55:020630デフォルトの名無しさん
2010/03/14(日) 21:55:410631デフォルトの名無しさん
2010/04/06(火) 00:54:27>>450を参考にして
IWindowForBindingUIでウィンドウハンドルを取得して
呼び出し元を判断しようとしてるんだけど
ウィンドウハンドルが取れない場合があるのは(画像とかCSS)
IE8のせい?
0632デフォルトの名無しさん
2010/04/25(日) 08:59:37visible=trueのIEが開いてしまうのですが、これを非表示で開くにはどうしたらいいでしょうか?
開いてからvisible=falseを設定しても一瞬ウィンドウが見えて気持ち悪いので。。
0633デフォルトの名無しさん
2010/04/25(日) 15:58:590634デフォルトの名無しさん
2010/04/25(日) 16:08:140635デフォルトの名無しさん
2010/04/25(日) 16:13:120636デフォルトの名無しさん
2010/05/10(月) 01:55:480637デフォルトの名無しさん
2010/05/11(火) 22:19:55http://www.moug.net/faq/viewtopic.php?t=47909
0638デフォルトの名無しさん
2010/06/01(火) 23:35:40高根社長のSM趣味サイトMaskRと
副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが
高根社長の本業コムラッドについても語ろう
銀座プレジス
http://www.prezis.jp/top.htm
MaskR
http://maskr.com/
【腹黒樹里高根】銀座プレジス3【客の情報開示】
http://set.bbspink.com/test/read.cgi/sm/1273492895/
【腹黒樹里】プレジスを語ろう2【周年イベント大失敗】
http://set.bbspink.com/test/read.cgi/sm/1262702507/
プレジスを語ろう
http://set.bbspink.com/test/read.cgi/sm/1246009466/
動画配信専門リアルミストレスってどうよ?
http://set.bbspink.com/test/read.cgi/sm/1249183350/
9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O
高値はもう大麻やめたの?
10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O
タカネ社長ってどうやってばれないように脱税してんだろ?
億単位で脱税して億ション暮らしなんて凄いよな
監査役の奥さんもグルなのか?
0639デフォルトの名無しさん
2010/06/01(火) 23:36:22高根はMASKRでレイプ仲間募集するのやめたんだね
mixiで募集中か
21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO
風俗店やってるってことは高根社長は暴力団と繋がってるんだね
どこの組にいくらみかじめ料払ってるんだかw
23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O
タカネ社長未成年に酒飲ませてレイプ
24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO
高根社長のレイプ趣味は病気だから治らない
25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO
前科者
26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0
>>25
容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害?
28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO
どこかのスレで人を死に追いやったと書いてあった
33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0
金がないって脱税がばれて追徴課税でも来たか?
せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw
38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO
首吊り首絞めプレイ大好き高根英哉
0640デフォルトの名無しさん
2010/06/01(火) 23:37:08>>18
高根英哉blogでレイプ仲間募集中
私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
・SMを実践している、または興味がある
・マスクを用意できる
・都内でイベント参加できる
・イベント内容およびこの仲間を通じて知りえた情報を口外しない
・成人男子である
・携帯電話および携帯メールアドレスを私に公開できる
・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
r[email protected]
[email protected]
[email protected]
0641デフォルトの名無しさん
2010/06/01(火) 23:37:210642デフォルトの名無しさん
2010/06/27(日) 05:24:110643デフォルトの名無しさん
2010/06/28(月) 13:08:470644デフォルトの名無しさん
2010/07/01(木) 17:35:58IEコンポーネントさえあれば何でも操作できます
実はDBやレジストリ、ファイル操作もできます
0645デフォルトの名無しさん
2010/09/12(日) 01:09:520646デフォルトの名無しさん
2010/10/01(金) 22:43:26ってあったとき<a>のonclick属性の文字列(foo();)を取得するにはどうすればよいのでしょうか?
<a>のhref属性の文字列は
MSHTML::IHTMLElementPtr elem = document->getElementsById("id");
elem->getAttribute(L"href", 0).bstrValr; // -> hoge
で取れるのですが、onclick は ↑のL"href"をL"onclick"にしても取れませんでした
0647デフォルトの名無しさん
2010/10/01(金) 22:52:150648デフォルトの名無しさん
2010/10/01(金) 23:04:51ありがとうございます!
_variant_t var(elem->onclick);
としてみると、var は VT_DISPATCH で文字列ではないようなのです...
0649デフォルトの名無しさん
2010/12/19(日) 14:03:03Sleipnirなら操作できるのでは?
自分は嫌いだから使わないけど。
0650デフォルトの名無しさん
2011/01/21(金) 16:15:02about:blank → IHTMLDocument2::write
で書き込んだ文字列の「検索」機能(Ctrl+F)についてなのですが
今までIE6・IE7を使ってるPC環境だと問題なく使えていたのに
IE8のPC環境では、文字を検索しても全くヒットしなくなりました。
(何でも「一致する項目はありませんでした」となる)
この事象の解決方法が分かる方は、いらっしゃいますでしょうか?
ちなみに開発環境は
VC++2005 Standard
Windows7
です。
0651デフォルトの名無しさん
2011/01/21(金) 19:40:140652デフォルトの名無しさん
2011/01/21(金) 19:51:380653デフォルトの名無しさん
2011/01/21(金) 21:34:250654デフォルトの名無しさん
2011/01/21(金) 22:40:57おっしゃる通り、writeの後にcloseしたら、一発で解決しました。
ありがとうございます!
何年も前に書かれたコードだったのですが、IE8になってバグが顕在化したわけですね。
closeしないといけなかったとは、全く知りませんでした。
助かりました。
0655デフォルトの名無しさん
2011/01/26(水) 08:08:100656デフォルトの名無しさん
2011/01/26(水) 15:49:490657デフォルトの名無しさん
2011/01/26(水) 18:54:26さっそく試してみます。
0658デフォルトの名無しさん
2011/01/26(水) 21:57:430659デフォルトの名無しさん
2011/01/26(水) 22:44:390660デフォルトの名無しさん
2011/01/27(木) 19:03:510661デフォルトの名無しさん
2011/02/08(火) 00:32:53この度、C++プログラムでhtml上のtextareaに値が入れ方がわからなくて質問をさせて頂きます。
SHDocVwとMSHTMLを使い、html上のtextareaにデータを入れるのを以下のように実装したのですが、入れたはずの値が表示されません。(内部では入っているようですが・・・)
なぜ他の項目のように値がみえないのでしょうか?
よろしくお願いいたします。
SHDocVw::IWebBrowser2Pt m_pIE.CreateInstance(L"InternetExplorer.Application");
//希望のページに飛ぶ(中略)
MSHTML::IHTMLDocument3Ptr pDocument( m_pIE->Document );
pCollection = pDocument->getElementsByTagName(_bstr_t(L"textarea"));
for (long i = 0; i < pCollection->length; ++i)
{
MSHTML::IHTMLTextAreaElementPtr pText(pCollection->item(_variant_t(i)));
//!本文
if( !_wcsicmp(pText->name, L"項目名" ) ){
pText->value= _bstr_t( "hoge" );
}
}
【環境】Visual C++ 2008 Express Edition
0662デフォルトの名無しさん
2011/02/10(木) 01:28:300663デフォルトの名無しさん
2011/02/11(金) 04:32:130664デフォルトの名無しさん
2011/03/07(月) 10:58:51.180665デフォルトの名無しさん
2011/08/26(金) 14:20:53.620666デフォルトの名無しさん
2011/09/29(木) 22:16:53.030667デフォルトの名無しさん
2011/12/23(金) 13:21:10.29ポップアップ等新しいウィンドウが作られるときにInternet Exploreで作られてしまいます
これを自作簡易ブラウザで開くようにしたいのですがどうすればいいですか?
0668デフォルトの名無しさん
2011/12/23(金) 13:35:59.97http://www.usefullcode.net/2009/04/05_tabbrowser.html
0669デフォルトの名無しさん
2011/12/23(金) 15:08:15.74ありがとうございます
でも.NetのwebBrowser使ってるのでNewWindow2がない・・・
0670デフォルトの名無しさん
2011/12/29(木) 15:16:54.050671デフォルトの名無しさん
2012/01/05(木) 00:49:30.91AAサロンの「騙し絵」スレに期待通りの動作をさせるポップアップは
javascriptじゃなくこっちのプログラムで実装する必要がありますよね…?
mouseoverの実装めんどくさいよ。
http://toro.2ch.net/test/read.cgi/aasaloon/1313381315/l50
0672デフォルトの名無しさん
2012/01/07(土) 23:06:29.01邪道と言われるかもしれなけけど、メインウインドウをIEコンポーネントで作ればjavascriptでの実装も可能
0673デフォルトの名無しさん
2012/01/09(月) 18:43:45.88thx.
でもごめんもう実装してたり。
あとつまってるのは、write()で流し込んでclose()したhtmlが
scrollTo()で思った位置に飛ばせないとこで。
0674デフォルトの名無しさん
2012/01/23(月) 17:38:27.390675デフォルトの名無しさん
2012/02/02(木) 11:13:41.69既に開いているIEウィンドウで、以下の様なHTMLを表示しているとします。
〜〜(略)〜〜
<form name="myform">
...
<input type="hidden" id="hogehoge" value="XXXX" />
...
</form>
〜〜(略)〜〜
私の作ったアプリ側で、上記の XXXX にあたる部分を書き換えたいのですが、どうしたらよいでしょうか?
一応、
SHDocVw::IWebBrowser2Ptr pIE = (略) ; // pIE を取得
MSHTML::IHTMLDocument2Ptr pHtmlDoc = pIE->GetDocument(); // htmlドキュメントを取得
MSHTML::IHTMLElementCollectionPtr pHtmlCol = pHtmlDoc->forms; // フォームのオブジェクトを取得
まではできたのですが、ここから行き詰っています。
ぜひご教授下さい。。。
0676デフォルトの名無しさん
2012/02/02(木) 11:59:03.390677デフォルトの名無しさん
2012/02/05(日) 21:55:47.84IEが元から引っ張ってきているクッキーが邪魔して期待している結果にならない
IEが引っ張ってきたクッキーを消して独自のクッキーを送ってあげたいんだけど
そういうことってできますか?
0678デフォルトの名無しさん
2012/02/06(月) 07:18:33.580679デフォルトの名無しさん
2012/02/06(月) 16:57:09.360680デフォルトの名無しさん
2012/03/04(日) 22:50:21.12BeforeNavigate2だとXMLHttpRequestのリクエストが取得できませんでした。
ブラウザがXMLHttpRequestでリクエストした情報を取得するには、何を利用したら良いのでしょうか?
ノウハウやそれが掲載されているサイトをご教授いただけると助かります。
よろしくおねがいします。
0681デフォルトの名無しさん
2012/03/10(土) 22:52:43.61リソース中の mht ファイルを表示する簡単な方法があったら教えてくれ。
0682デフォルトの名無しさん
2012/03/13(火) 19:08:02.170683デフォルトの名無しさん
2012/03/14(水) 22:39:15.16ありがとう
0684デフォルトの名無しさん
2012/03/18(日) 11:05:16.40どんな原因が考えられる?
親ウィンドウの背景色は白じゃないし子ウィンドウをクリップしてる。
他にウィンドウは重なってない。
WM_SIZEを捕まえて再描画しないようにするとちらつかないけど更新されない。
0685営利利用に関するLR審議中@詳細は自治スレへ
2012/04/06(金) 22:31:29.85マウスでの範囲選択はどうしたら無効にできる?
0686営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 10:09:05.550687営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 14:19:32.030688営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 20:41:22.370689685
2012/04/07(土) 23:40:05.88どうやら俺のレベルがまだ足りていないようだ。
もう少しわかるようになったらまた質問させてください。
0690営利利用に関するLR審議中@詳細は自治スレへ
2012/04/08(日) 11:26:08.97ttp://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm
しかし、一部のサイトを表示しようとしたところ、スクリプト関係がうまく
いってないのか、IE9で表示するとエラーもなく表示されるのに、
vb.netで作成したブラウザだとスクリプトエラーなのか、
[スクリプトエラー。xxが定義されていません」などと表示されます。
考えられる原因は何があるのでしょうか。
IE9が使っているコンポーネントとvb.netで作成したコンポーネントが
違うことが起因してエラーになってるのでしょうか。
以下のguidの指定が古いとかありますか?現在はIE9を利用しています。
<ComImport(), Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"), _
InterfaceType(ComInterfaceType.InterfaceIsIDispatch), _
TypeLibType(TypeLibTypeFlags.FHidden)> _
Public Interface DWebBrowserEvents2
0691デフォルトの名無しさん
2012/05/08(火) 22:08:23.571. IE7ではpdfにアクセスするとほぼ必ず落ちる。
2. Googleの出力が、Firefoxと違ってアクセス先がpdfかどうか分かりにくい。
で悩んでいます。IE8にアップする以外で対応する方法ありますか?
なければ周りの人のIE8の評判聞いてバージョンアップします。
0692691
2012/05/08(火) 23:33:17.700693デフォルトの名無しさん
2012/05/08(火) 23:50:49.54これ環境がおかしいんじゃないのか?
普通落ちることはマレだろ
0694デフォルトの名無しさん
2012/05/09(水) 00:11:33.840695デフォルトの名無しさん
2012/05/10(木) 19:13:44.80>>693
会社のPCなのでそんなに激しくいじってはいないのですが。逆に言うとまずい原因も分からないのです。
>>694
やっぱそれが一番ですか。そうします。
ところで、
>2. Googleの出力が、Firefoxと違ってアクセス先がpdfかどうか分かりにくい。
が結構めんどくさいと思ってしまうのですが。「○○の最新動向」とか書いてあって
pdfとかだと、なんかだまされた気がしますw
0696デフォルトの名無しさん
2012/05/18(金) 15:07:20.200697デフォルトの名無しさん
2012/06/05(火) 21:56:02.90elementsとclickで実装しようとしてるけど上手くいかない
0698デフォルトの名無しさん
2012/06/05(火) 22:53:25.190699デフォルトの名無しさん
2012/06/05(火) 23:03:30.870700デフォルトの名無しさん
2012/06/11(月) 01:33:17.03IEのアドレスバーに
javascript:void(prompt('',gApplication.getMap().getCenter()));
みたいに入力すると取得できています
HRESULT hr;
CComBSTR bstrCode(_T("eval(var a = gApplication.getMap().getCenter())"));
CComBSTR bstrLang(_T("javascript"));
CComPtr<IHTMLDocument2> spHtmlDoc;
CComPtr<IHTMLWindow2> spHtmlWin;
IHTMLDocument2 *pHtmlDoc = GetDocument2();
if (!pHtmlDoc)
return FALSE;
spHtmlDoc.Attach(pHtmlDoc);
hr = spHtmlDoc->get_parentWindow(&spHtmlWin);
if(FAILED(hr))
return FALSE;
VARIANT varEmpty = {0};
hr = spHtmlWin->execScript(bstrCode, bstrLang, &varEmpty);
0701デフォルトの名無しさん
2012/06/11(月) 01:49:37.08bstrMember は "eval"
hr = pHtmlDoc->get_Script(&spScript);
(中略)
hr = spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,...
(中略)
hr = spScript->Invoke(dispid,IID_NULL,0,...
次のようにすると見つかります。
hr = spScript->GetDispID(bstrMember, fdexNameCaseSensitive, &dispid);
(中略)
hr = spScript->InvokeEx(dispid, LOCALE_USER_DEFAULT,...
(中略)
あと
CComPtr<IHTMLScriptElement> spScriptElem;
hr = spDisp->QueryInterface( IID_IHTMLScriptElement, (void **)&spScriptElem);
で確認するとスクリプトが空なんです。
もうなにがなんだかさっぱりな状態です
■ このスレッドは過去ログ倉庫に格納されています