■90469 |
Re[9]: AddHandler Eventの別スレッドについて |
□投稿者/ 魔界の仮面弁士 -(2019/03/13(Wed) 09:51:47)
| 2019/03/13(Wed) 14:39:48 編集(投稿者)
■No90463 (TanuTanu さん) に返信 > CreateObject("Shell.Application").Windows
えぇ…。(−ー; 別スレッドである No90411 を含め、今までこんなコードの話は 出ていなかったように思うんですが、どこかで言及されていましたっけ?
上記をレイトバインドで処理したいのであれば、 過去ログの No47158 , No35068 あたりを探ってみてください。
というか上記を使っているのなら、わざわざ API を駆使して >>> 下記サイトのGetIEDocumentでHTMLDocumentを取得しております。 のような方法を取る必要は無いと思いますよ。
Windows プロパティから得たコレクションを列挙することで、 個々の InternetExplorer オブジェクトを取得できるので、 その Document プロパティにアクセスすれば、 HTMLDocument のインスタンスを得ることができますよね。
> エラー BC30512 Option Strict On では 'Object' から 'InternetExplorer' への暗黙的な変換は許可されていません。 > objIE.LocationName objIE 変数が As Object なのだとしたら、As SHDocVw.InternetExplorer にしてください。
この場合、参照設定として、 ・"Microsoft Internet Controls" (SHDocVw) ・"Microsoft Shell Controls And Automation" (Shell32) が必要です。
参照設定を加えずに Option Strict On のままにしたいのであれば、 先日の回答 ( No90410 , No90461 )や、上記過去ログ ( No35068 )などのように、 CallByName を経由してアクセスする必要があります。
> エラー BC30512 Option Strict On では 'Integer' から 'IntPtr' への暗黙的な変換は許可されていません。 > PWnd = FindWindowExA(0, 0,・・・ IntPtr 型の引数に 「0」という Integer 値を渡しているからでしょう。 ここは IntPtr.Zero とすべきです。
さらに言えば、FindWindowExA API ではなく FindWindowExW API を用いた方が望ましいと思います。
> 下記が表示されました。 > ※ボタン名称は非公開にしております。 だとしたら、ターゲットにしているページが間違っています。
取得した HTMLDocument が、先の No90454 で示した >> https://www.javadrive.jp/javascript/event/sample2_1.html になっていることを再度確認してみてください。
このページから取得した yahoo ボタンであれば、下記の内容が表示されるはずなんですが…。
--------------------------- function onclick(event) { kakunin(1) } ---------------------------
上記の URL でも問題が生じるなら、環境依存の問題がありそうです。
上記の URL では成功したけれども、目標としている URL だと失敗するのなら、 jQueryのイベントハンドラが使われているなど、そのページ固有の 別の問題がある可能性があるので、具体的な URL なり、 正確なページの内容(HTML & JavaScript)が分からない事には、 情報不足過ぎて答えようが無いです。 |
|