在任务计划程序中安排批处理(或其他文件)以弹出指向网站的窗口

在任务计划程序中安排批处理(或其他文件)以弹出指向网站的窗口

我正在尝试创建一个批处理文件(或其他文件)来显示带有是/否选项的弹出提醒,我可以将其设置为在任务计划程序中指定的时间运行。这将计划在基本计算机上运行,​​因此最终用户将不需要运行任何主要的脚本软件。

我需要设置提醒,提醒员工每天早上签到。如果他们选择“是”,我希望它只关闭弹出窗口,但如果他们选择“否”,我希望它打开网站让他们签到。

我当前有一个包含以下内容的批处理文件:

@echo off
del msgbox.vbs
echo x=msgbox("Reminder to sign in on School Checkin." ,4, "School Checkin Reminder") >> msgbox.vbs
start msgbox.vbs

所以我可以将其设置为显示是/否选项,但我希望将其设置为当他们按“否”时,它会打开登记网站。

它不需要是一个批处理文件,但至少可以在后台运行而不显示命令,并且可以通过任务计划程序运行。

答案1

这是一种方法。您可以使用微软 HTA制作一个简单的对话框,上面有一个“是”和“否”按钮。您的 IT 部门可能不允许 HTA,但大多数部门都允许。

这也是在 C# 中要执行的非常少的代码,但您需要编译和分发它。

您希望[Yes]按钮执行什么操作?我让它只是关闭窗口。

我让它打开默认浏览器窗口DuckDuckGo.com..我确信这不是你要做的。

我并不是来持续提供支持,让它完全按照你的要求去做的。如果它还没有达到你的要求,我会给你一个起点。 我很乐意回答问题,但不负责提供解决方案如果不是这样的话。也许您的补充可以用来更新这个答案。

优点:

  • 内置于 Windows
  • 基于 Web 的 GUI
  • 直接访问 vbscript 或 javascript (jscript)

缺点:

  • 打开时你会看到闪光。
  • 我确信评论区还会出现更多缺点 ;-)

要使用它,将文本保存到带有 HTA 扩展名的任意名称的文件中。

双击运行并选择“Microsoft(R)HTML应用程序主机”
从任务计划程序(或快捷方式)运行,它将是MSHTA <path_to_hta_file>

<!DOCTYPE html>
<html>
<head>
    <title>Reminder to sign in on School Checkin</title>
    <meta http-equiv="x-ua-compatible" content="IE=9">
    <meta name="author" content="Jeremy England">
    <meta name="copyright" content="SimplyCoded">
    <meta name="last-modified" content="2015-11-10">
    <hta:application
        border="thin"
        contextmenu="no"
        innerborder="no"
        icon="Narrator.exe"
        maximizebutton="no"
        minimizebutton="no"
        selection="no"
        singleinstance="yes" />

    <!--HTML APP SCRIPT-->
    <script type="text/vbscript">
' ---------
' On load
' ---------
 Sub window_onload()
  document.body.scroll = "no"
  window.moveTo 0,2000
  resizeWindow()
  window.moveTo 200,100
 End Sub
' ---------
' On Call 
' ---------
Class getWindowSize
 Function width()
 width = document.body.offsetWidth+16
 End Function
 Function height()
 height = document.body.offsetHeight+39
 End Function
 Function scrollHeight()
 scrollHeight = document.getElementById("tpArea").scrollHeight
 End Function
End Class

Set current = New getWindowSize

Function resizeWindow()
 ratio = 0.62
 wdth = current.width
 hght = current.width*ratio
 
 Do while current.height-50 <= current.scrollHeight
 If current.height >= screen.height-200 Or current.width >= screen.width-200 Then
  Exit Do
 Else
  wdth = wdth + 5
  hght = hght + 5*ratio
  window.resizeTo wdth, hght
 End If
 Loop
 
 Do while current.height-50 >= current.scrollHeight
 If current.height <= 155 Or current.width <= 250 Then
  Exit Do
 Else
  wdth = wdth - 5
  hght = hght - 5*ratio
  window.resizeTo wdth, hght
 End If
 Loop
End Function

' ---------
' On click
' ---------
 Function yesBtn()
   Window.Close()
 End Function

 Function noBtn()
  Set wsh=CreateObject("WScript.Shell")
  wsh.Run "http://duckduckgo.com"
  Window.Close()  
 End Function
    </script>


    <!--HTML APP STYLE-->
    <style>
        html, body {
            height: 100%;
            width: 100%;
            margin: 0px;
            padding: 0px;
            font-family: Arial;
            font-size: 10pt;
        }

        #tpArea {
            margin: 10px;
            padding-bottom: 60px;
        }

        #btArea {
            position: fixed;
            bottom: 0px;
            right: 0px;
            background-color: #ecf0f1;
            width: 100%;
            height: 50px;
            text-align: right;
        }

        button {
            font-family: Arial;
            font-size: 10pt;
            position: relative;
            top: 12.5px;
            right: 10px;
            width: 85px;
            height: 25px;
            margin-left: 5px;
            border: none;
            border-radius: 30px;
            background-color: #ffffff;
        }

            button:hover {
                color: #ecf0f1;
            }
    </style>
</head>


<!--HTML APP CONTENT-->
<body>
    <div id="tpArea">
        School Checkin Reminder
    </div>

    <div id="btArea">
        <button id="Ybtn" onclick="yesBtn()">Yes</button>
        <button id="Nbtn" onclick="noBtn()">No</button>
    </div>
</body>
</html>

原始未修改的 HTA 来自这里

答案2

使用你的脚本,

  1. 添加用户输入和选择(也可以看看沃德)。
  2. 添加启动默认浏览器的命令,例如start <URL>

答案3

请注意,您的提示措辞不正确:“提醒在 School Checkin 上登录”不是是非问题。尝试“您是否在 School Checkin 上登录?”

因此,这里有一个“纯 vbscript”选项。将您现有的代码片段与 HTA 答案 ( Function noBtn()) 中的 shell 对象代码片段相结合。将“运行命令”包装在消息框返回值的测试中(vbNo是 vbscript 定义的常量)。

dim wsh, x
x = msgbox("Did you sign in on School Checkin?" , 4, "School Checkin Reminder")
if x = vbNo then
    Set wsh = WScript.CreateObject("WScript.Shell")
    wsh.Run "http://duckduckgo.com", 1, false
end if

我通过在批处理文件中运行来测试它wscript test.vbs。大概您可以在调度程序中使用它并完全避免使用批处理文件,但您可以按照问题示例的方式回显它,因为它很紧凑。

相关内容