Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вообще то не обязательно использовать столько циклов, просто переделываем функцию немного(?):

Код: Выделить весь код
#include <Array.au3>

$aOwners = _ProcessesGetOwner('svchost.exe')

_ArrayDisplay($aOwners)

Func _ProcessesGetOwner($sPID_Name, $sComputer = ".")
    Local $objWMI, $colProcs, $sUserName, $sUserDomain, $aRet_Owners[1][2]

    $objWMI = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2")
    If Not IsObj($objWMI) Then Return SetError(1, 0, 0)

    $colProcs = $objWMI.ExecQuery("SELECT * FROM Win32_Process", "WQL", 0x30)
    If Not IsObj($colProcs) Then Return SetError(2, 0, 0)

    For $iProc In $colProcs
        If $iProc.Caption = $sPID_Name Then
            If $iProc.GetOwner($sUserName, $sUserDomain) Then ContinueLoop

            $aRet_Owners[0][0] += 1
            ReDim $aRet_Owners[$aRet_Owners[0][0]+1][2]

            $aRet_Owners[$aRet_Owners[0][0]][0] = $iProc.ProcessID
            $aRet_Owners[$aRet_Owners[0][0]][1] = $sUserDomain & "\" & $sUserName
        EndIf
    Next

    Return $aRet_Owners
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:09, 06-10-2009 | #2