Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-99182
viper
2002-12-19 09:16
2002.12.30
Получение юзера!


14-99291
Vladimir Prokhorov
2002-12-05 16:35
2002.12.30
Что включать в дистрибутив с Access/ADO


3-98947
Анонимщик
2002-12-06 17:22
2002.12.30
Interbase, хранимая процедура, prompt


1-99168
Error
2002-12-18 15:35
2002.12.30
TListView


7-99377
Геннадий
2002-10-08 21:26
2002.12.30
Как создать подобие TaskBar а? Что также крепился и исчезал.