You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用TDL代码检测Tally Prime中的网络连接状态?

在Tally中通过TDL检测网络连接状态的替代方案

$$IsInternetActive函数存在局限性——它仅检测系统是否存在网络适配器(包括未连通的虚拟网卡),无法判断实际网络连通性。以下是几种可靠的替代实现方式:

方法1:调用Windows系统ping命令验证

通过TDL的$$ShellExecute执行系统ping命令,解析返回结果判断网络状态:

[Function: CheckInternetConnection]
    Type: String
    Definition: $$ShellExecute("ping -n 1 -w 1000 8.8.8.8 >nul && echo YES || echo NO")

使用时通过返回值判断:

[Field: NetworkStatus]
    Set as: $$If($$IsEqual($$CheckInternetConnection, "YES"), "已连接", "未连接")
  • 说明:8.8.8.8为Google公共DNS,可替换为其他稳定公共IP;-w 1000设置1秒超时,避免等待过久。

方法2:利用Tally的HTTP请求能力验证

通过$$HTTPGet尝试请求在线资源,根据返回内容是否有效判断:

[Function: VerifyInternet]
    Type: Logical
    Definition: $$IsNotEmpty($$HTTPGet("http://example.com", 1000))
  • 说明:http://example.com为测试域名,可替换为更稳定的轻量资源;1000为超时毫秒数。

方法3:调用VBScript脚本检测

  1. 保存以下内容为CheckNet.vbs:
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 1 -w 1000 8.8.8.8")
strOutput = objExec.StdOut.ReadAll
If InStr(strOutput, "Reply from") > 0 Then
    WScript.Echo "YES"
Else
    WScript.Echo "NO"
End If
  1. 在TDL中调用脚本:
[Function: CheckNetViaVBS]
    Type: String
    Definition: $$ShellExecute("cscript //nologo CheckNet.vbs")

注意事项:

  • 所有方法需要Tally具备执行外部命令的权限,确保用户账户有足够操作权限
  • 超时建议设置在1-3秒之间,平衡准确性和用户体验
  • 避免频繁检测,可设置定时触发或用户主动触发

内容的提问来源于stack exchange,提问作者tdlplanner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 13:04:53