Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение сетевых ресурсов, Как подключить ресурс в службе? 
:(
    Опции темы
oleg2s
Дата 21.1.2013, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.5.2012

Репутация: нет
Всего: 1



Доброе время суток.
Есть самописанная служба. Эта служба периодически читает каталог на сетевом ресурсе.
ОС - Win 7

Есть несколько случаев, когда возникают проблемы с подключением.
1. Русурс уже подключен к компьютеру пользователем рабочего стола.
    В этом случае подключение в службе не возможно (или я этого не знаю).
2. Если запустить службу от имени пользователя рабочего стола, то все равно ничего не получается. Т.к. сетевые диски в любом случае в сервисе не видны.

Как подключить сетевой ресурс? При этом надо сделать так, что если у пользователя этот ресурс уже подключен, то отключать его нельзя.

Код

// Открывает доступ к сетевому ресурсу 
Function Access_Resourse(PathResurse, Username, Password: String): Boolean; 
var ShareName: string; 
    Res: Integer; 
    lpNetResource: TNetResource; 
Const r = ERROR_SESSION_CREDENTIAL_CONFLICT; 
begin 
  ShareName := ExcludeTrailingPathDelimiter(PathResurse); 

  ZeroMemory(@lpNetResource, SizeOf(lpNetResource)); //заполним нолями значение указателя 

  lpNetResource.dwType := RESOURCETYPE_ANY; 
  lpNetResource.lpLocalName := nil; 
  lpNetResource.lpProvider := nil; 
  lpNetResource.lpRemoteName := PChar(ShareName); 

  res := WNetAddConnection2(lpNetResource, PChar(Password), PChar(UserName), 0); 
  // Если соединение уже установлено другими приложениями 
  // то открываем доступ без использования имени и пароля 
  if res = ERROR_SESSION_CREDENTIAL_CONFLICT then 
     res := WNetAddConnection2(lpNetResource, Nil, Nil, 0); 
  if Res = 0 then 
     Result := True 
  else 
     Begin 
     Result := False; 
     WriteMessageLogFile('Ошибка открытия сетевого ресурса - ' + PathResurse); 
     End; 
End; 


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.