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

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

Аватара для Maza Faka

Ветеран


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

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


amel27,
Нужна твоя помощь Необходимо получить список компьютеров локальной сети, в принципе решение есть (твой скрипт для Nicklock-a), но из "спортивного" интереса хотелось бы получить список с помощью нижеуказанных функций:
Код: Выделить весь код
Global Const $RESOURCE_CONTEXT   = 0x5
Global Const $RESOURCETYPE_DISK  = 0x1

Global Const $NO_ERROR              = 0
Global Const $ERROR_NO_MORE_ITEMS   = 259
Global Const $ERROR_INVALID_ADDRESS = 487

$lpBuffer = DllStructCreate("dword[16384]")
$pBuffer = DllStructCreate("hwnd")

$aRet = DllCall("mpr.dll", "dword", "WNetOpenEnum", "dword", $RESOURCE_CONTEXT, "dword", $RESOURCETYPE_DISK, "dword", 0, "ptr", 0, _
                "ptr", DllStructGetPtr($pBuffer))

If $aRet[0] <> $NO_ERROR Then
    MsgBox(16, "Error", "Dll call error")
    Exit
EndIf

$hWnd = DllStructGetData($pBuffer, 1)

$aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hWnd, "dword", -1, _
                "ptr", DllStructGetPtr($lpBuffer), "dword", DllStructGetSize($lpBuffer))

ConsoleWrite("!> Ret: " & $aRet[0] & @LF)

DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hWnd)
Ссылки:
WNetOpenEnum
WNetEnumResource

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 12:20, 03-07-2008 | #694