HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0215
pandaCOMオブジェクト型の配列6解決


panda

リンク

2009/2/15(Sun) 11:27:18|NO.23397

nはユーザーにより様々な整数(n>0)が入ります。

このとき、通常ウィンドウをn個作成するときには

sdim cap,512,3 cap="りんご","うどん","ピザ" n = 3 repeat n screen cnt,640,480 title cap(cnt) loop
と記述すると思います。

ActiveX などをn個設置するときにはどうすればいいのでしょうか。


sdim cap,512,3 cap="りんご","うどん","ピザ" n = 3 url = "hsp.tv","google.com","goo.ne.jp" repeat n screen cnt,800,600 title cap(cnt) axobj ie, "Shell.Explorer.2",800,600 ie->"Navigate" url(cnt) loop

これだと

ie->"Navigate" "yahoo.co.jp"
を実行してもnの最大値(この場合だと3)のウィンドウのブラウザしかジャンプしません。
スクリプトを見てわかるとおり、ieのCOMオブジェクト型が何度も初期化されているからだと思います。

で、私が聞きたいのはこの ie の配列を作るにはどうしたらいいのかをお教えいただきたく質問しました。

ちなみに、sdim , dim で配列をつくっても、やはり型がちがうみたいで、クローンも作れないみたいです。

COMオブジェクト方変数の配列の作り方をお教えください。

よろしくお願いします。



この記事に返信する


panda

リンク

2009/2/15(Sun) 11:29:52|NO.23399

種類が募集!!
になってますが、間違えです。。。。^^;;



inovia

リンク

2009/2/15(Sun) 11:39:41|NO.23400

これでOKなはずです。



dimtype ie, vartype("comobj"), 32



panda

リンク

2009/2/15(Sun) 13:00:39|NO.23402

ご指摘ありがとうございます!
 …しかし、宣言はできたみたいですが、COMに命令が送れないみたいです…。
また、ご指摘お願いします。


dimtype ie, vartype("comobj"), 32 sdim cap,512,3 cap="HSPTV","Google","goo" n = 3 url = "hsp.tv","google.com","goo.ne.jp" repeat n screen cnt,800,600 title cap(cnt) axobj ie(cnt), "Shell.Explorer.2",800,600 ie->"Navigate" url(cnt) loop wait 600 ie(1)->"Navigate" "yahoo.co.jp" ;× ie.1->"Navigate" "yahoo.co.jp" ;×



inovia

リンク

2009/2/15(Sun) 13:25:42|NO.23404

こんな風に別の変数に移せばOKなはず。面倒くさいですが。


_ie=ie(1) _ie->"Navigate" "yahoo.co.jp"



panda

リンク

2009/2/16(Mon) 08:12:25|NO.23429

度々ありがとうございます。
オブジェクトの呼び出しに失敗するっとの警告がでて、試行錯誤中です。
また、お力を貸していただければ幸いです。


dimtype ie, vartype("comobj"), 32 sdim cap,512,3 cap="HSPTV","Google","goo" n = 3 url = "hsp.tv","google.com","goo.ne.jp" repeat n screen cnt,800,600 title cap(cnt) _ie = ie(cnt) axobj _ie, "Shell.Explorer.2",800,600 _ie->"Navigate" url(cnt) loop wait 600 _ie=ie(1) _ie->"Navigate" "yahoo.co.jp"

余談ですが、COMイベントもご指摘されたようにしているのですが、やはりエラーが起きるようです。

例:

// いま開いているタブを取得 _ie_event = ie_event(CurrentTabId) // COMイベントの内容を確認 DispID = comevdisp(_ie_event) ;↑ここでエラー



inovia

リンク

2009/2/16(Mon) 19:27:42|NO.23432

これならOKのはず。
axobjを呼び出すときはCOM型配列変数の方で初期化してください。
代入した変数で初期化しても、意味がありませぬ。


dimtype ie, vartype("comobj"), 32 sdim cap,512,3 cap="HSPTV","Google","goo" n = 3 url = "hsp.tv","google.com","www.goo.ne.jp" repeat n screen cnt,800,600 title cap(cnt) axobj ie(cnt), "Shell.Explorer.2",800,600 _ie=ie(cnt) _ie->"Navigate" url(cnt) loop stop wait 600 _ie=ie(1) _ie->"Navigate" "yahoo.co.jp"



ONION software Copyright 1997-2021(c) All rights reserved.