Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата HORRIBLE:
возвращает массив пустой »
Можно ещё так:

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

$aProcessInfo = _ProcListByUserName(@UserName)
_ArrayDisplay($aProcessInfo)

Func _ProcListByUserName($sUserName = @UserName)
    Local $oColItems, $objWMIService, $objItem, $cI_Compname = @ComputerName
    Local $aProcessList[1]

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $oColItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL")

    If Not IsObj($oColItems) Then Return SetError(1, 2, 0)

    For $objItem In $oColItems
        If _GetExtProperty($objItem.ExecutablePath, 8) <> $sUserName Then ContinueLoop

        $aProcessList[0] += 1
        ReDim $aProcessList[$aProcessList[0] + 1]
        $aProcessList[$aProcessList[0]] = $objItem.Caption
    Next

    Return $aProcessList
EndFunc

Func _GetExtProperty($sPath, $iProp)
    Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    $iExist = FileExists($sPath)
    If $iExist = 0 Then Return SetError(1, 0, 0)

    $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
    $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
    $oShellApp = ObjCreate("shell.application")
    $oDir = $oShellApp.NameSpace($sDir)
    $oFile = $oDir.Parsename($sFile)

    If $iProp = -1 Then
        Local $aProperty[35]

        For $i = 0 To 34
            $aProperty[$i] = $oDir.GetDetailsOf($oFile, $i)
        Next

        Return $aProperty
    Else
        $sProperty = $oDir.GetDetailsOf($oFile, $iProp)

        If $sProperty = "" Then Return 0
        Return $sProperty
    EndIf
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


Отправлено: 17:58, 12-06-2008 | #638