![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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