关于多线程 【已解决】
本帖最后由 haodd 于 2010-11-12 23:22 编辑类似以下 怎么把配置文件的所有ip 平均交给各个线程 进行ping操作 然后判断ping返回的值。
ping()
配置文件 ini如下
==========================
10.1.1.1
10.1.1.2
10.1.1.3
……
……
……
10.1.1.253
[线程]
线程 = 5
========================== 能力有限。花半个小时写的。根据自己需要改改吧。
#NoTrayIcon
If $CmdLine <> 0 Then
$p = Ping($CmdLine, 250)
IniWrite("ping.ini", "IP=ping", $CmdLine, $p)
exit
endif
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("AU3局域网群Ping", 510, 420)
dim $Button
$h = 30
$s = 20
for $i = 1 to 255
$Button[$i] = GUICtrlCreateButton($i, $h, $s, 30, 20)
;GUICtrlSetState(-1,$GUI_DISABLE)
$h = $h + 30
if $h > 450 then
$h = 30
$s = $s + 20
endif
next
$Buttona1 = GUICtrlCreateButton("开始", 136, 380, 75, 25)
$Buttona2 = GUICtrlCreateButton("退出", 312, 380, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Buttona1
if @Compiled = 1 then
p()
else
msgbox(48,"错误","请编译后再执行此操作!",30,$Form1)
endif
case $Buttona2
Exit
EndSwitch
WEnd
func p()
dim $r
For $i = 1 to 255
$r[$i] = run(@ScriptFullPath&" 192.168.1."&$i)
next
For $i = 1 to 255
ProcessWaitClose($r[$i])
next
For $i = 1 to 255
if IniRead("ping.ini", "IP=ping", "192.168.1."&$i, "") > 0 then GUICtrlSetBkColor($Button[$i], 0x00ff00)
next
endfunc
http://www.autoitx.com/thread-18106-1-1.html 这不算多线程吧 {:face (327):} 感谢, 试试先! 留名回看,谢谢
页:
[1]