Форум: "Сети";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизUNC Найти похожие ветки
← →
Evgeny (2002-10-29 13:27) [0]вопрос:
Как текущий каталог представить в виде UNC с помощью winapi. То есть есть компьютер \\MY_COMP (локальный),
на нём диск C:, на нём есть каталог TEMP, этот диск отдан в сети (расшарен)
под именем UNCTEMP - как с помощью winapi получить представление этого
диска в виде \\MY_COMP\UNCTEMP\TEMP (что является аналогом C:\TEMP)
← →
Петров Денис (2002-10-29 13:57) [1]Стоит воспользоваться NetAPI-функцией NetShareEnum (перечисляет все сетевые ресурсы на заданном сервере) с первым параметром == NULL (для локального компьютера). Подробнее - смотри в MSDN или Win32 SDK Help, который идет с Delphi.
← →
Evgeny (2002-10-30 04:57) [2]Имеешь в виду WNetEnumResource. Пробовал я ее (она описана в SysUtils), но она не помогает для локальной машины. А именно такую машину и требуется опросить (та за которой в данный момент сидишь).
← →
Петров Денис (2002-10-31 15:12) [3]Нет, Evgeny!
Именно NetShareEnum. Заголовок из MSDN: "The NetShareEnum function retrieves information about each shared resource on a server".
Я пользвовался ей для тех же целей - помогает. Правда, не в Delphi (sorry, но Pascal must die), а в Buildere, потому было легче - подключил хэдер и вперед.
Подробно функция описана в MSDN"е. Если не можешь найти - пиши, вышлю статью из MSDN"а.
Сложность на самом деле может возникнуть только одна - если в Delphi"йских юнитах не описан заголовок NetShareEnum, то придется либо сделать это самому (наподобие заголовков остальных API-функций), либо - написать юнит на C++, скомпилить его в .obj и прилинковать к Delphi"йскому проекту.
Кстати, насчет WNetEnuResource - не совсем верно. Эта функция позволит получить тебе ВСЕ ресурсы в сети, видимые с данного компьютера, В ТОМ ЧИСЛЕ и ресурсы локальной машины (собственно, ей пользуется Explorer, когда открывает сетевое окружение). Неудобство - пользоваться семейством функций WNetOpenEnum, WNetEnumResource и WNetCloseEnum достаточно громоздко для такой задачи, как твоя, ну, и потом придется сравнить полученные имена сетевых ресурсов с именем локальной машины. Если это устраивает - то на здоровье.
← →
Evgeny (2002-11-02 11:36) [4]В дельфийском хэлпе функция NetShareEnum не описана, сказано только что это устаревшая функция замененная ныне на WNetEnumResource.
> В ТОМ ЧИСЛЕ и ресурсы локальной машины
А спомощью WNetEnumResource мне не удалось получить данные о локальной машине, только замапленные диски (возможно я не со всеми возможными комбинациями параметров поигрался).
> Неудобство - пользоваться семейством функций WNetOpenEnum, WNetEnumResource и WNetCloseEnum достаточно громоздко для такой задачи
В модуле SysUtils - это все уже сделано, есть готовая внутренняя функция, но как я уже сказал, что то у меня с ней не получилось.
Надо попробовать NetShareEnum. Если у тебя есть декларация на эту функцию, то переделать ее для работы в Дельфи не составляет труда. Если размер позволяет опиши здесь в форуме, если нет - вышли по адресу afro@sibovk.omskcity.com
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c