
VBSでタイトルバーのみのIEウィンドウを開き、
SendKeyでtestと入力するスクリプトを作成しています。
ですが、開いたIEのウィンドウがアクティブにならず、
SendKeyがIEに送信されません。
VBSについては全くの初心者でして、ウィンドウがアクティブにならないのが
環境の問題なのか、プログラムの問題なのか判断できません。
どなたかご教授をお願いします。
IEのバージョンは8、OSはWinXPです。
以下、ソースです。
--------------------------------------------------
'タイトルバーのみのIEを起動する
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate("http://www.google.co.jp/")
objIE.MenuBar = False
objIE.StatusBar = False
objIE.ToolBar = False
objIE.AddressBar = False
objIE.Visible = True
'表示待ちループ
Do While objIE.Busy
WScript.Sleep 100
Loop
'[test]で検索
WshShell.SendKeys("test")
WScript.Sleep(100)
WshShell.SendKeys("{TAB}")
WScript.Sleep(100)
WshShell.SendKeys("{ENTER}")
--------------------------------------------------
No.1ベストアンサー
- 回答日時:
プログラムでは無く、環境によるものです。
ただ、WSHを使ってアクティブウィンドウにキーを送る仕組みですが、WSHからIEを起動したら確実にアクティブになる補償は無いので、スクリプト内で明示的にアクティブにした方が安全です。
@ITで指定したプロセスIDをアクティブにしてキーを送る記事があったので、参考になると思います。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
ただし、
Set objIE = WScript.CreateObject("InternetExplorer.Application")
で起動した場合、objIEだけでプロセスIDが得られないので、別の検討が必要になります。
メニュー等非表示の指定を除けば、iexplorer.exeをExecコマンドで立ち上げることは可能でしょう。
プロセスIDまで取得してきっちり組みたい場合は、WSHにてWMIという仕組みを使えばプロセス情報は得られます。
http://www.upken.jp/kb/wmi_sample.html
検索ワードとしては、「WMI」「VBScript」「プロセス」「取得」あたりでいろいろ出ると思いますよ。
IE起動前にプロセス一覧を記録し、起動後に増えたIEのプロセスをうまく引ければ実現できそうですね。
No.3
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBSで起動したアプリが前面表示しない
Visual Basic(VBA)
-
VBスクリプト---アプリの終了について
その他(プログラミング・Web制作)
-
vbscriptで、ファイル選択ダイアログを前面に出したい。
その他(プログラミング・Web制作)
-
-
4
VBscriptが起動しない?
Microsoft ASP
-
5
起動しているIEをVBSで閉じるときの問題・・・
Visual Basic(VBA)
-
6
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
7
VBScriptでコマンドプロンプトウィンドウを開いたままにしたいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
Process.Startの戻り値を後で取得
-
特定ユーザーのプロセス情報を...
-
explorer.exeが異様にメモリを食う
-
【C#】別プロセスがロックか...
-
Windowsでのfork方法
-
ウインドウのプロセス終了について
-
プロセスのアタッチ・デタッチ...
-
UNIX関数?(popen)...
-
実行中のプログラムIDが取得...
-
OSPFでプロセスを分ける意義に...
-
ShellExecuteが起動したプロセ...
-
Linuxでのスレッド間メッセージ...
-
スマホ Androidの方、又は機械...
-
LSIのプロセス技術開発について...
-
iPodの取り外しの際のエラーメ...
-
ロードアベレージが高いのです...
-
AF_UNIXのsocketと共有メモリを...
-
.NETアプリケーションの戻り値
-
プロセスIDからウィンドウハ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
タスクマネージャーのプロセス...
-
ADOでアクセスのレコードに...
-
VB6.0 SHELLで起動...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
vb.netでEXCEL起動がうまくでき...
-
プロセスIDの取得方法について
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
IISがフリーズ
-
API関数 GetExitCodeProcess
-
VB.NETで起動したExcelの閉じ方...
-
explorer.exeが異様にメモリを食う
-
Visual C++からpingを実行して...
-
c言語でプロセスIDを調べたい
-
VBS(WSH)で開いたIEのウィンド...
-
Linuxでのスレッド間メッセージ...
-
怪しいプロセス教えてください。
-
VBAで別プロセスのExcelのフル...
おすすめ情報