
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)
-
起動しているIEをVBSで閉じるときの問題・・・
Visual Basic(VBA)
-
VBscriptが起動しない?
Microsoft ASP
-
-
4
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
5
VBスクリプト---アプリの終了について
その他(プログラミング・Web制作)
-
6
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
7
VBSで変数の宣言はできないのですか?
Visual Basic(VBA)
-
8
vbscriptで、ファイル選択ダイアログを前面に出したい。
その他(プログラミング・Web制作)
-
9
VBScriptでコマンドプロンプトウィンドウを開いたままにしたいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VisualC++ デバッグ時エラーで...
-
バックグラウンドのプロセスの...
-
SendMessageが失敗するときがある
-
プロセスとスレッドはどう違い...
-
CreateProcessでアプリが終了し...
-
Linuxでのスレッド間メッセージ...
-
プロセスの終了コードについて...
-
VB6.0 SHELLで起動...
-
C#でのbatファイル実行結果取得
-
セマフォとmutexの違いは?
-
非表示になったエクセルは?
-
Windowsでのfork方法
-
CPU使用率が高い 何故? ...
-
アプリケーションが終了するま...
-
VBでエクセルを起動し、プロ...
-
子プロセスと親プロセス
-
AppActivate関数について
-
vb.netでEXCEL起動がうまくでき...
-
プロセスのアタッチ・デタッチ...
-
フレームワークとプロセスの違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
C#でのbatファイル実行結果取得
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
怪しいプロセス教えてください。
-
sleep関数の精度について
-
【C#】別プロセスがロックか...
-
Process.Startの戻り値を後で取得
-
IISがフリーズ
-
プロセスIDからウィンドウハ...
-
Linuxでのスレッド間メッセージ...
-
Windowsでのfork方法
-
SendMessageが失敗するときがある
-
警告『 別のプロセスで使用され...
-
WSH.Runで待機できません
-
VB.NETで起動したExcelの閉じ方...
おすすめ情報