use*_*516 5 vbscript kiosk google-apps-script kiosk-mode
在过去,我使用下面的脚本来检测标题为"远程桌面"的活动窗口是否处于活动状态.如果它不活动,脚本将自动启动或再次激活.
问题:有没有办法检测窗口是否处于活动状态并自动关闭它?我正在办公室的Windows 7机器上以chrome kiosk模式设置一个售货亭.主页面在弹出窗口中启动选定的Google表单.表单确认页面标题为"谢谢!" 在标题栏中.脚本有没有办法自动检测此窗口并关闭它?这将是很好的,因为用户会看到他们的响应已提交(一两秒钟),但如果他们没有关闭窗口,当下一个用户去使用信息亭时它将不会打开.
另一种选择可能是如果有一种方法可以在表单上使用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
Run Code Online (Sandbox Code Playgroud)
如果我需要关闭的窗口处于活动状态,然后运行以下脚本,窗口将关闭.这几乎就像我需要将顶部和底部代码拼凑在一起以实现我所需要的,但我不确定如何.Dim oShell
Set oShell = CreateObject("WScript.Shell")
If oShell.AppActivate("Untitled - Notepad") Then
WScript.Sleep 500
oShell.SendKeys "%{F4}"
End If
Run Code Online (Sandbox Code Playgroud)
我正在尝试找到一个将在启动时运行的脚本,并等待打开具有特定标题的窗口,然后在检测到它后将其关闭.如果我可以控制一旦检测到窗口保持打开多长时间会更好,但如果我可以让它关闭就足够了.
我想我找到了一个很好的解决方案.我找到了这篇文章并修改了答案.有没有人看到这个问题?
' 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
Run Code Online (Sandbox Code Playgroud)
小智 8
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
Run Code Online (Sandbox Code Playgroud)
我看到的唯一麻烦是Alt+ F4将依次关闭窗口,直到它想要关闭窗口本身.有点让我紧张,即使这个脚本只会检测你给它的名字.
我尝试了脚本,它工作正常但是如何使用某些窗口的转义键?
另一件我不喜欢的事情是它始终在运行并占用资源.我放慢了循环,所以它至少会在大多数时间在后台暂停.
| 归档时间: |
|
| 查看次数: |
28276 次 |
| 最近记录: |