buna, am o problema cu functia getprocesslist() shtiu ca return-ul de la aceasta functie este un array dar cand incerc sa transmit de pe un server pe un client acest arrray clientul nu primeste sub forma de array....
acesta este SERVERUL:
#include
#include
dim $ipaddress1 = @ipaddress1
dim $port1 = 1991, $procport = 1993
dim $socket, $recv, $procsocket
dim $procaddress = @ipaddress1
dim $GetProcess
udpstartup()
;===============================================================================
do
$mainsocket = udpbind($ipaddress1, $port1)
Until @error = 0
;===============================================================================
do
$procsocket = UDPOpen($procaddress, $procport)
until @error = 0
;===============================================================================
;Creating a GUI (for testing the server)
;===============================================================================
$gui = guicreate("serverul", 320, 220)
GUISetBkColor("0x000000", $gui)
guisetstate(@SW_SHOW)
$edit = guictrlcreateedit("", 10, 10, 300, 200, BitOR($WS_EX_WINDOWEDGE, $ES_READONLY, $ES_AUTOVSCROLL, $ES_MULTILINE, $WS_VSCROLL))
GUICtrlSetColor(-1, "0x00FF00")
GUICtrlSetBkColor(-1, "0x000000")
GUICtrlSetFont(-1, 8.0, 400)
;===============================================================================
while 1
$msg = GUIGetMsg()
if $msg = $GUI_EVENT_CLOSE then
udpclosesocket($mainsocket)
udpclosesocket($procsocket)
udpshutdown()
exitloop
endif
$recv = udprecv($mainsocket, 102400)
If $recv <> "" Then GUICtrlSetData($edit, GUICtrlRead($edit) & @CRLF & "[" & @HOUR & ":" & @MIN & "] " & $recv)
if $recv = "get processes" then
$GetProcess = ProcessList()
udpsend($procsocket, $GetProcess)
endif
WEnd
acesta este CLIENTUL
#include
UDPStartup()
dim $ipaddress1 = @ipaddress1
dim $port1 = 1991, $procport = 1993
dim $socket, $procsocket
global $GetProcess, $recv
$gui = guicreate("clientul", 500, 300)
$proclist = guictrlcreatelist("", 20, 40, 220, 210)
$refreshlist = guictrlcreatebutton("Refresh list", 260, 40, 100, 50)
$closeproc = guictrlcreatebutton("Close process", 260, 100, 100, 50)
$newproc = guictrlcreatebutton("New process", 260, 160, 100, 50)
guisetstate(@SW_SHOW)
$socket = UDPOpen($ipaddress1, $port1)
If @error <> 0 Then Exit
$procsocket = udpbind($ipaddress1, $procport)
if @error <> 0 then exit
while 1
$msg = guigetmsg()
if $msg = $GUI_EVENT_CLOSE then
udpclosesocket($sinsocket)
UDPCloseSocket($socket)
UDPShutdown()
ExitLoop
endif
if $msg = $refreshlist then
udpsend($socket, "get processes")
sleep(1000)
if $recv <> "recv" then
$GetProcess = $recv
For $i = 1 To $GetProcess[0][0]
GUICtrlSetData($proclist, $getprocess[$i][0])
sleep(1000)
Next
EndIf
endif
wend
acesta este DEBUGUL
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\Programing stuff\autoit projects\project trojan\proclist\client.au3"
D:\Programing stuff\autoit projects\project trojan\proclist\client.au3 (35) : ==> Subscript used with non-Array variable.:
For $i = 1 To $GetProcess[0][0]
For $i = 1 To $GetProcess^ ERROR
>Exit code: 1 Time: 3.062