過去に、以下のスクリプトを使用して、「リモート デスクトップ」というタイトルのアクティブ ウィンドウがアクティブかどうかを検出しました。アクティブでない場合、スクリプトは自動的に起動するか、再びアクティブにします。
質問: ウィンドウがアクティブかどうかを検出して自動的に閉じる方法はありますか? 私たちのオフィスの Windows 7 マシンで、chrome キオスク モードでキオスクをセットアップしています。メイン ページでは、選択した Google フォームがポップアップ ウィンドウで起動されます。フォーム確認ページのタイトルは「Thank You!」です。タイトルバーに。スクリプトがこのウィンドウを自動検出して閉じる方法はありますか? ユーザーは応答が送信されたことを (1 ~ 2 秒間) 確認できますが、ウィンドウを閉じないと、次のユーザーがキオスクを使用するときにまだ開いていないため、これは便利です。
別のオプションは、フォームで Google スクリプトを使用して送信ボタンをプログラムしてウィンドウを閉じる方法がある場合です。それが可能かどうかはわかりません。
Option Explicit
'On Error Resume Next
Dim objShell
Set objShell = CreateObject("WScript.Shell")
Do
If (objShell.AppActivate("Window Title Here") = False) Then
objShell.Run "mstsc.exe " & chr(34) & "c:\scripts\Remote Desktop.rdp" & chr(34)
WScript.Sleep 5000
Else
WScript.Sleep 3000
End If
Loop
閉じる必要があるウィンドウがアクティブで、次のスクリプトを実行すると、ウィンドウが閉じます。必要なものを実現するには、ここで上部と下部のコードをつなぎ合わせる必要があるようですが、どうすればよいかわかりません。薄暗いシェル
Set oShell = CreateObject("WScript.Shell")
If oShell.AppActivate("Untitled - Notepad") Then
WScript.Sleep 500
oShell.SendKeys "%{F4}"
End If
起動時に実行され、特定のタイトルのウィンドウが開くのを待ってから、検出されたら閉じるスクリプトを見つけようとしています。検出されたウィンドウが開いたままになる時間を制御できればさらに良いのですが、ウィンドウを閉じるだけで十分です。
良い解決策を見つけたと思います。この投稿を見つけて、回答を修正しました。誰もこれに問題があると思いますか?
' Will loop forever checking for the message every half a second
' When it finds the message it will close the window
Set wshShell = CreateObject("WScript.Shell")
Do
ret = wshShell.AppActivate("Untitled - Notepad")
If ret = True Then
wshShell.SendKeys "%{F4}" 'ALT F4
End If
WScript.Sleep 500
Loop