Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WNetAddConnection2 и WinXP [D7, Win95/98, WinME, WinXP]


Andrews ©   (2004-10-12 13:03:00) 

Всем Привет!

Мастера подскажите почему этот код

var
 NRStruct             : NETRESOURCE;
 RNetCon              : DWORD;
 UpdatePath         : String;
....

with NRStruct do
begin
  dwType       := RESOURCETYPE_DISK;
  lpLocalName  := nil;
  lpRemoteName := PChar(UpdatePath);
  lpProvider   := nil;
end;

if NetPassword = '' then RNetCon := WNetAddConnection2(NRStruct,nil,nil,0)
                   else RNetCon := WNetAddConnection2(NRStruct,PChar(NetPassword),nil,0);

if NOT(RNetCon = NO_ERROR) then
begin
case RNetCon of
  ERROR_ACCESS_DENIED             : S := 'Отказано в доступе!';
  ERROR_ALREADY_ASSIGNED          : S := 'Подключение к устройству, указанному в параметре lpLocalName уже установлено!';
  ERROR_BAD_DEV_TYPE              : S := 'Тип устройства и тип ресурса не соответствуют!';
  ERROR_BAD_DEVICE                : S := 'Значение, указанное в lpLocalName недопустимо!';
  ERROR_BAD_NET_NAME              : S := 'Значение, указанное в lpRemoteName параметре - не правильно или не может быть найдено!';
  ERROR_BAD_PROFILE               : S := 'Пользовательский профиль имеет неправильный формат!';
  ERROR_CANNOT_OPEN_PROFILE       : S := 'Система неспособна открыть параметр пользователя, чтобы обработать постоянные подключения!';
  ERROR_DEVICE_ALREADY_REMEMBERED : S := 'Вход для устройства, указанного в lpLocalName - уже существует в параметре пользователя!';
  ERROR_EXTENDED_ERROR            : S := 'Ошибка подключения к сети (network-specific error)!';
  ERROR_INVALID_PASSWORD    : S := 'Неправильный пароль!';
  ERROR_NO_NET_OR_BAD_PATH        : S := 'Операция не может быть выполнена, потому что или сетевой компонент не загружен, или указанное сетевое имя не может использоваться!';
  ERROR_NO_NETWORK                : S := 'Сеть не обнаружена!';
end;
end;

прекрасно работает на машине с Win9x и не работает под WinXP?

Выдает ошибку ERROR_NO_NET_OR_BAD_PATH  путь заведомо рабочий, в XP права администратора. Вероятно в NETRESOURCE нужно использовать еще какие либо параметры, но какие? Или подстава в другом?


Дмитрий Ботвин   (2004-10-12 14:03:00) [1]

Тогда скорее всего дело в структуре. А кнопочки получатся тока
если на D7 скомпилить и использовать манифест XP


Andrews   (2004-10-12 13:58:00) [2]

Нет :o), мало того тот же код скомпиленный в D5 прекрасно работает везде, но пользователи хотят красивые кнопочки...


Дмитрий Ботвин   (2004-10-12 13:49:00) [3]

Так, а у тебя не SP2 случайно стоит???


Andrews   (2004-10-12 13:40:00) [4]

>> Дмитрий Ботвин

Спасибо попробую... просто все примеры которые я изучал об остальных параметрах ни слова не говорится, видать во времена 9x это было не актуально :o)


Reindeer Moss Eater   (2004-10-12 13:36:00) [5]

В гетластеррор НАДОсвято верить.


Andrews   (2004-10-12 13:34:00) [6]

ПУТЬрабочий, СЕТЬдоступна, использую компонент PBFolder в этой же программе для выбора сетевой папки, он прекрасно сеть видит, если подмонтировать сетевой диск с помощью RNetCon := WNetConnectionDialog(Application.Handle,RESOURCETYPE_DISK); тоже все прекрасно работает.


Дмитрий Ботвин   (2004-10-12 13:32:00) [7]

Видимо структуру определил не полностью.В SDK она описана так:

typedef struct _NETRESOURCE {  // nr  
   DWORD  dwScope;
   DWORD  dwType;
   DWORD  dwDisplayType;
   DWORD  dwUsage;
   LPTSTR lpLocalName;
   LPTSTR lpRemoteName;
   LPTSTR lpComment;
   LPTSTR lpProvider;
} NETRESOURCE;

попробуй описать полностью


Reindeer Moss Eater   (2004-10-12 13:22:00) [8]

ERROR_NO_NET_ OR_BAD_PATH


Наверх

Титульная страница Поиск, карта сайта Написать письмо