Googler
Сообщения: 3665
Благодарности: 1563
|
Профиль
|
Отправить PM
| Цитировать
Maza Faka
примерно так, но функция сама не ищет во вложенных контейнерах,
в твоем случае она возвратит только объект "Вся сеть"
Код: 
Global Const $NO_ERROR = 0
Global Const $ERROR_NO_MORE_ITEMS = 259
Global Const $ERROR_MORE_DATA = 234
Global Const $MAX_RESOURCES = 256
Global Const $NOT_A_CONTAINER = -1
Global Const $RESOURCETYPE_ANY = 0
Global Const $RESOURCETYPE_DISK = 1
Global Const $RESOURCETYPE_PRINT = 2
Global Const $RESOURCE_CONNECTED = 1
Global Const $RESOURCE_GLOBALNET = 2
Global Const $RESOURCE_REMEMBERED = 3
Global Const $RESOURCE_CONTEXT = 5
Func _WNet_EnumResource($iType = $RESOURCETYPE_ANY, $iScope = $RESOURCE_CONTEXT)
Local $tBuf = DllStructCreate("hwnd"), $pBuf = DllStructGetPtr($tBuf)
Local $aRet = DllCall("mpr.dll", "int", "WNetOpenEnum", "int", $iScope, "int", $iType, "int", 0, "ptr", 0, "ptr", $pBuf)
If $aRet[0] Then Return SetError(2, $aRet[0])
Local $hEnum = DllStructGetData($tBuf,1)
Local $tCount = DllStructCreate("int"), $pCount = DllStructGetPtr($tCount)
Local $tBSize = DllStructCreate("int"), $pBSize = DllStructGetPtr($tBSize)
DllStructSetData($tCount, 1, -1)
$aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize)
If $aRet[0]=0 Then
DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
Return SetError(1, 0)
ElseIf $aRet[0]<>$ERROR_MORE_DATA Then
DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
Return SetError(3, $aRet[0])
EndIf
DllStructSetData($tCount, 1, -1)
$tBuf = DllStructCreate("byte["& DllStructGetData($tBSize,1) &"]")
$pBuf = DllStructGetPtr($tBuf)
$aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize)
If $aRet[0] Then
DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
Return SetError(4, $aRet[0])
EndIf
DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
Return SetError(0, DllStructGetData($tCount,1), $tBuf)
EndFunc
|