Что нового

[Сеть, интернет] Вызов функции NetShareEnum из Netapi32.dll

Renz

Осваивающий
Сообщения
63
Репутация
36
При запуске скрипта нет MsgBox-а, похоже что-то с передачей параметров. :wacko: Уже весь моск себе вынес, может кто подскажет в чем ошибка?
Скрипт:
Код:
$MAX_PREFERRED_LENGTH = 0xFFFFFFFF
$zapr =Binary("0x"&Hex(502,8))
Dim $Buf,$er=0,$tr=0,$resume=0
$ip = ""
;~ $_SHARE_INFO_1 = DllStructCreate("str;dword;str")
$dll = DllOpen("Netapi32.dll")
;~ MsgBox(0,"DllOpen",@error)
$result = DllCall($dll,"str","NetShareEnum","str" ,$ip,"dword", $zapr,"ptr",$Buf,"dword",$MAX_PREFERRED_LENGTH,"dword", $er,"dword",$tr,"dword",$resume)
MsgBox(0,"DllCall",@error)
DllClose($dll)

Вот описание функции:
http://msdn.microsoft.com/ru-ru/library/bb525387
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Для Level = 0:

Код:
Global Const $MAX_PREFERRED_LENGTH = 0xFFFFFFFF

$Ret = DllCall('netapi32.dll', 'uint', 'NetShareEnum', 'ptr', 0, 'dword', 0, 'ptr*', 0, 'dword', $MAX_PREFERRED_LENGTH, 'dword*', 0, 'dword*', 0, 'ptr', 0)
If (@error) Or ($Ret[0]) Then
	MsgBox(16, 'NetShareEnum()', 'Error code: ' & $Ret[0] & ' (0x' & Hex($Ret[0]) & ')')
EndIf

$tShare = DllStructCreate('ptr[' & $Ret[5] & ']', $Ret[3])
For $i = 1 To $Ret[5]
	ConsoleWrite(DllStructGetData(DllStructCreate('wchar[1024]', DllStructGetData($tShare, 1, $i)), 1) & @CR)
Next

DllCall('netapi32.dll', 'uint', 'NetApiBufferFree', 'ptr', $Ret[3])
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Renz,
А чем Вам не нравится функция _Net_Share_ShareEnum()?
 
Автор
Renz

Renz

Осваивающий
Сообщения
63
Репутация
36
Пока сам не разберешся... Спасибо разжевали.
Код:
DllCall("netapi32.dll", "int", "NetShareEnum", "wstr", $sServer, "dword", 2, "ptr*", 0, "dword", -1, "dword*", 0, "dword*", 0, "ptr", 0)

А функция _Net_Share_ShareEnum() тоже ниче :smile:
 
Верх