1

我不确定是否有更有效的方法来做到这一点,尽管有人曾经说过他们使用 Win32 API 而不是 io.popen。问题是,我似乎缺乏将 WinAPI 整合到任何东西中的技能,但如果我能找到关于 makefile(或我需要做的任何事情)的详细分步说明并使其工作,我很乐意使用它. 但在那之前,这是手头的任务。

我目前正在使用 io.popen 在我使用的程序中返回 ping 结果问题是,它会弹出 cmd 框,虽然它只是短暂地这样做,但很烦人。这就是我的代码:

pinghandle = io.popen("ping "..zs.params(2))
pingresult = pinghandle:read("*a")
pingmin = string.match(pingresult,"Minimum = (%d+ms)")
pingmax = string.match(pingresult, "Maximum = (%d+ms)")
pingavg = string.match(pingresult, "Average = (%d+ms)")
pinghandle:close()
if pingmin and pingmax and pingavg then
  send(zs.param(1),"@r{@x111Ping to @w"..zs.params(2).." @x111Min: @w"..pingmin.." @x111Avg: @w"..pingavg.." @x111Max: @w"..pingmax.."@r}@w")
else
  send(zs.param(1),"@x111Unsuccessful ping to@w",zs.params(2))
end

不注意zs.param(#)。这是特定于客户的,与代码无关。我的问题是......是否有一种“隐形”的方式来达到同样的效果?除此之外,这是否与我可以编写代码一样有效?

4

1 回答 1

1

有各种外部库可让您为您执行此操作。

查看winapiaprex

于 2013-01-07T14:03:25.090 回答