Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
7-99371
RETAND
2002-10-21 21:00
2002.12.30
Сделать мою форму как рабочий стол


1-99145
kalishenko stas
2002-12-18 13:59
2002.12.30
И снова Word


14-99337
sad
2002-12-09 09:26
2002.12.30
Вопрос математикам


3-98962
SashaK
2002-12-09 17:39
2002.12.30
ADO не освобождает ресурсы !!!


14-99301
Arkan
2002-12-09 23:02
2002.12.30
Про форум!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский