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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- 格安スマホ・SIMフリースマホ https://www.amazon.co.jp/s/ref=bl_dp_s_mw_0?ie=UTF 1 2022/05/22 17:06
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBSで起動したアプリが前面表示しない
Visual Basic(VBA)
-
VBScriptでの起動済みのIEの操作
その他(プログラミング・Web制作)
-
Vbscriptで自分自身のウィンドウを最大化するには?
Microsoft ASP
-
-
4
VBSでのSendKeysでの画面の最小化
その他(プログラミング・Web制作)
-
5
起動しているIEをVBSで閉じるときの問題・・・
Visual Basic(VBA)
-
6
アウトルックが起動しているかどうかを取得するには?
Visual Basic(VBA)
-
7
vbscriptで、ファイル選択ダイアログを前面に出したい。
その他(プログラミング・Web制作)
-
8
VBScriptでコマンドプロンプトウィンドウを開いたままにしたいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
プロセスのアタッチ・デタッチ...
-
Texについてです。 jpgファイル...
-
WINのタスクマネージャの強制終了
-
シェルで親プロセス終了時に子...
-
ウィンドウのタイトルからプロ...
-
Linuxでのスレッド間メッセージ...
-
C++のプログラムをバックグラウ...
-
他のアプリケーションの操作に...
-
API関数 GetExitCodeProcess
-
怪しいプロセス教えてください。
-
WebBrowserでPDF表示でのトラブル
-
Windowsでのfork方法
-
ADOでアクセスのレコードに...
-
Visual C++からpingを実行して...
-
VBでエクセルを起動し、プロ...
-
スレッド?
-
VB6.0 SHELLで起動...
-
複数同時実行時の参照先について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
なぜ女性は男性が忘れたことを...
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
C#でのbatファイル実行結果取得
-
プロセスIDからウィンドウハ...
-
c言語でプロセスIDを調べたい
-
Linuxでのスレッド間メッセージ...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
怪しいプロセス教えてください。
-
vb.netでEXCEL起動がうまくでき...
-
別のプロセスの関数を呼び出す...
-
C++のプログラムをバックグラウ...
-
Visual C++からpingを実行して...
-
VBS(WSH)で開いたIEのウィンド...
-
IISがフリーズ
おすすめ情報