| | | | |
Полный текст материала
Другие публикации автора: Александр Терехов
Цитата или краткий комментарий: «... Как-то потребовалось программным способом открыть доступ к сетевому ресурсу. После прочтения (в очередной раз) хелпа от Дельфи стало ясно, что сетевым администрированием занимаются функции семейства Net*... ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 12 | 100% | | | | Ничего особенно нового и интересного | [2] | 0 | 0% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 12 | | | Все понятно, материал читается легко | [1] | 9 | 81.8% | | | | Есть неясности в изложении | [2] | 2 | 18.2% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 11 |
[TObject] [TForm] [TButton] [Зашаренные ресурсы]
Отслеживать это обсуждение
Всего сообщений: 1007-06-2004 15:08Статья бесспорно интересная, особенно во второй части, где начинается авторский материал.
Сразу по поводу "расшаркивания перед правообладателями". Может вам и неприятно это слышать, но как раз приведение чужого материала без добавления своей функциональности (что там говорилось об алгоритмах во Вступлении ?) и является "плагиатом", а ссылка на авторов используемых фрагментов кода никогда не унижала разработчика. Раз уж взял чужой код, пусть его автором является мастдайный Microsoft или трижды гениальный Peter Vones, мало сказать Thanks где-то внутри статьи, "скромно" умолчав в исходнике про настоящего творца (ведь, лень же было самому копаться в библиотеке и вытаскивать прототипы !) Понимаю, что "крутому программисту" могут не нравиться положения Copyright'а, так используйте Copyleft.
Далее уже по тексту статьи.
1) Это какие же такие интересности и полезности могут оправдать объявление констант и типов в модуле формы. Если уж так хочется что-то подстроить под себя, лучше создать свой модуль объявлений (туда же, кстати, положить и "расшифровку" сообщений об ошибке, а не в case-операторах обработчиков кликов кнопок) и ссылаться на него в uses.
2) После взятия памяти GetMem надо начать блок try-finally-end, чтобы не позабыть освободить память, выделенную под буфер, если внутри процедуры что-то завершится неудачно, либо произойдет еще какая-нибудь пакость. Все-таки хоть Delphi и "сама все почистит", аккуратность никогда никому не мешала. Возможно, что здесь автор не хотел отвлекаться от дела, но упомянуть об этом следовало. Однако пассаж
"//освободим указатель
FreeMem(pbBuffer);"
заставляет задуматься, что же на самом деле предполагалось освободить. Для указателя достаточно := nil
3) "...В качестве аргумента нашей процедуры передадим переменную типа TStrings" В Delphi TStrings – не тип переменной, а класс, к тому же абстрактный, так что обращаться с ним надо осторожно. Поэтому экземпляр TStrings нельзя передавать аргументом, хотя быть параметром он способен. В финальном листинге в Button1Click ComboBox.Items в действительности не TStrings, как об этом сообщает Delphi Help, а его неабстрактный наследник – TComboBoxStrings, скрытый в недрах модуля StdCtrls. На самом деле, все VCL-компоненты с аналогичным свойством Items подменяют его специализированными наследниками.
4) Процедура ConnectAdmin: Зачем же сразу терминировать приложение в пользовательской процедуре ? Может сделать ее функцией, а что делать с "сезам-не-открываемой машиной" пусть решает тот, кто вызвал функцию ?
5) FillShareEnum, судя по листингу, не обязан возвращать в ComboBox.Items хотя бы один элемент: и NetShareEnum может завершиться неудачно, да и EntriesRead, вообще говоря, может быть нулевым. В этих случаях установка ItemIndex в 0 неминуемо ведет к RTE.
А в остальном, материал, повторюсь, и интересен и полезен, но приведенные неточности несколько портят впечатление.
Best regards, Токинов. |
|
29-03-2004 12:34
01-12-2003 15:21Классный материал.Во всяком случае помог в написании программы для инеткафе. |
|
14-07-2003 18:17А я вот хочу получить список доверенных доменов с помощью функции NetEnumerationTrustedDomains(). Но она почему - то возвращает мне только первый домен из трех возможных. Никто не знает почему? |
|
05-05-2003 19:54как дать общий доступ к локальному диску |
|
17-02-2003 08:51Спасибо вам, за такую чудесную статью. Она мне очень пригодилась, но не могли бы вы написать мне на мыло, где можно ещё взять примеры для работы с локальной сетью средствами Delphi. Или подсказать книгу, в которой этот вопрос освещается. Жду ответа ... Заранее БОЛЬШОЕ СПАСИБО |
|
07-03-2002 15:19Очень нужна информация о том как всё это делается из NT, хотя бы что-нибудь. Плз!!! |
|
05-12-2001 16:05Исключительно полезная информация!
Хочу поблагодарить Александра и рассказать про себя историю.
Проблема была такая:
иногда не срабатывало подключение к ресурсу, т.е. права доступа есть, а подключение при входе в систему не происходит:)
Если подключить сетевой диск (и он не отвалился :) - то порядок)
Подключать диски-мне не нравится, так как пользователи очень умные и лазят где не надо :)
У меня данные лежат на серверах Netware (Nowell) (не знаю насколько корректно выражаюсь :)
а клиенты естественно под Microsoft.
Подозреваю, что конфликты возможны именно из-за этого.
Я конечно вышла из положения подключая временно диск с помощью
WNetGetConnection и WNetAddConnection
но это не от большого ума и скромных способностей.
Александру - спасибо за интересную статью.
|
|
05-12-2001 13:16Очень полезная информация, так как вопрос 'Как подключиться к ...' довольно часто
возникает в конференциях. Теперь буду знать, куда послать:o).
Маленькое замечание: 'ServerName - сетевое имя компьютера, для локального можно писать Nill.' Очевидно, nil(или на D3 я отстал от жизни?). |
|
05-12-2001 10:04
|
|