お前ら、wsh使ってますか? part6

このエントリーをはてなブックマークに追加
322名無し~3.EXE
WSHでIEオブジェクトを作成してそれのProcessIDを取得する方法を教えて欲しいのですが。

今は下記の手順でブラウザにキー送信をしていますが、「タイトルの文字列」が変更した場合には通用しません。
なので、ProcessID指定で確実にSendKeysをしたいのです。
InternetExplorer.Application + ProcessIDでぐぐっても見つけられませんでした。
よろしくお願いします。

Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")
Set sShell = WScript.CreateObject("WScript.Shell")
sShell.AppActivate("ブラウザのwebページのタイトル文字列")
sShell.SendKeys "ほげほげ"

参考にしたページ
ttp://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html
> 一方のプロセスIDは、Execを使って起動したプログラムでは、WshScriptExecオブジェクトのProcessIDプロパティから取得できる。

323名無し~3.EXE:2006/12/19(火) 21:38:05 ID:4I7Im65l
マルチするならせめて一言断り入れとけよ。あとリンク。

つか IE オブジェクト使うなら大凡の操作は可能だと思うのだが。わざわざ SendKeys 使わんでも。
324名無し~3.EXE:2006/12/20(水) 02:32:54 ID:mM03wtmE
>>323
ファイルの指定したいんじゃないかな?
予想だけど。

>>322
<input type="file">以外の入力をしたいのなら、SendKeysなんて不安定なもの使わなくても
Document.Allで取得したHTML要素のオブジェクトを直接操作できるよ。
DHTML関係で調べると情報が見つかると思う。

<input type="file">だけはセキュリティだか何だかで値を設定できないから仕方ないけど。
325名無し~3.EXE:2006/12/20(水) 10:45:02 ID:RqDSiDAq
>>324
そうです。
SendKeys "%(FA)"とかでセーブしたり印刷などダイアログ操作もしたいんです。