通过带有Internet访问条件的Window Task Scheduler运行日常任务

时间:2019-05-24 16:16:26

标签: windows events scheduled-tasks autohotkey

我希望(自动热键)任务每天在特定时间运行,条件是我的笔记本上有互联网访问权限-因为它需要打开网站。如果没有Internet访问,请在任务可用时立即运行。使用Windows Task Scheduler,此情况没有明显的设置。也许有一种方法可以构建自定义事件触发器,该触发器可以检查互联网连接?

尽管我对预定任务非常基础,但我在互联网上找不到任何相关信息?

我的任务的“条件”选项卡中的“仅在以下网络连接可用时才启动:任何连接”选项不起作用。我在飞行模式下处于离线状态,任务仍然触发。可能它检测到我的Hyper-V网络适配器“ vEthernet”,因此条件为true。我也不想在那里设置特定的WiFi网络,因为当任务被触发时,我可能在家中或在uni。到目前为止,我任务的触发因素是系统时钟。

1 个答案:

答案 0 :(得分:0)

您是否在AutoHotkey中尝试过任何操作?如果有,我建议发布您的代码,或者先尝试。一般来说,我们不会为您编写代码,但是我们很乐意为您解决特定的问题。

为使您入门,建议您使用SetTimer定期检查现在几点。一旦与所需时间匹配,请停用计时器并检查是否已连接到互联网(请参阅下文)。如果已连接,请执行您提到的任务并重新激活计时器。如果不是,请每30秒重新检查一次。 (或任何您想要的)直到连接。

检查Internet连接并不简单,但这是我偶尔使用的简化示例。

f1::
If NetChk( "https://www.google.com" )
    MsgBox , Success!
Else
    MsgBox , Nope... :(
Return

NetChk( sAddress )
{
    ComObjError( false )
    oWHR := ComObjCreate( "WinHttp.WinHttpRequest.5.1" )
    oWHR.Open( "GET" , sAddress )
    oWHR.Send()
    Return oWHR.ResponseText
}