Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Вниз

Отключение сетевыеx дисков   Найти похожие ветки 

 
pepper ©   (2005-08-10 09:36) [0]

Уважаемые Мастера!
Программа забирает файлы через сетевые диски на другом комьютере, обрабатывает их и затем выкладывает на сетевой диск третьего компьютера.Проблема состоит в том, что изредко происходит отключение сетевых дисков, и сответственно происходит остановка процесса обработки. Скажите как программно можно отследить состояние сетевого диска, и самое главное, как активизировать этот сетевой диск, при попытке использовать функцию WNetAddConnection2 для неактивного сетевого диска, она возвращает значение, что сетевой диск уже существует.


 
Rouse_ ©   (2005-08-10 09:59) [1]

После прихода сообщения WM_DEVICECHANGE где WParam равен $8004, перебери диски в системе (GetLogicalDrives + GetDriveType), твои будут видны как DRIVE_REMOTE


 
Bekzhan   (2005-08-10 10:52) [2]

Удалено модератором
Примечание: Offtopic


 
Bekzhan   (2005-08-10 10:55) [3]

Подключить с.д
//Пример открытия стандартного диалога

procedure TForm1.Button1Click(Sender: TObject);
begin
 WNetConnectionDialog(Handle,RESOURCETYPE_DISK)
end;

//Так же можно подключить и принтер
procedure TForm1.Button1Click(Sender: TObject);
begin
 WNetConnectionDialog(Handle,RESOURCETYPE_PRINT)
end;

//либо можно использовать следующий код
procedure TForm1.Button2Click(Sender: TObject);
var
NetResource: TNetResource;
begin
 { заполняем структуру TNetResource }
 NetResource.dwType       := RESOURCETYPE_DISK;
 NetResource.lpLocalName  := "S:";
 NetResource.lpRemoteName := "\\myserver\public";
 NetResource.lpProvider   := "";

 { подключаем сетевой ресурс, используя структуру TNetResource }
 If ( WNetAddConnection2(NetResource,
                        "", {Password (if needed) or empty}
                        "", {User name (if needed) or empty}
                        CONNECT_UPDATE_PROFILE)<>NO_ERROR) Then
    Raise Excepcion.Create("unable to map drive")
 //так же существуют другие константы для определения возникшей ошибки
 //ERROR_ACCESS_DENIED, ERROR_ALREADY_ASSIGNED, и т.д.
end;

//так же можно и отключить сетевой ресурс...
procedure TForm1.Button2Click(Sender: TObject);
begin
 if WNetCancelConnection2( "S:",0,TRUE) <> NO_ERROR then
   Raise Exception.create("Error disconnecting map drive");
 //соответственно можно использовать другие константы для определения ошибки
 //ERROR_DEVICE_IN_USE, ERROR_NOT_CONNECTED, и т.д.
end;


 
Bekzhan   (2005-08-10 10:57) [4]

Вызов диалога отключения сетевого диска

function DisconnectNetworkDrive(Wnd: HWND = 0): DWORD;
begin
 if Wnd = 0 then
   Wnd := FindWindow("Shell_TrayWnd", "");
 Result := WNetDisconnectDialog(Wnd, RESOURCETYPE_DISK);
end;

// Пример использования:
DisconnectNetworkDrive(Application.Handle);


 
pepper ©   (2005-08-10 12:20) [5]


> Bekzhan   (10.08.05 10:57) [4]
> Вызов диалога отключения сетевого диска

Меня интересуте как остледить что диск отключился, а подключение я делаю не через WNetConnectionDialog, а через WNetConnectionDialog2.


 
pepper ©   (2005-08-10 12:22) [6]


> Rouse_ ©   (10.08.05 09:59) [1]
> После прихода сообщения WM_DEVICECHANGE где WParam равен
> $8004, перебери диски в системе (GetLogicalDrives + GetDriveType),
> твои будут видны как DRIVE_REMOTE


Rouse, понял спасибо, а как можно восстановить подключение сетевого диска? WNetAddConnection2 не срабатывает или я не правильно делаю вызов...


 
pepper ©   (2005-08-10 12:23) [7]


> Bekzhan   (10.08.05 10:57) [4]

Прошу прощения WNetAddConnection2.....


 
Rouse_ ©   (2005-08-10 14:59) [8]

Сначала вызови WNetCancelConnection2, а потом уж WNetAddConnection2


 
pepper ©   (2005-08-10 15:23) [9]


> Rouse_ ©   (10.08.05 14:59) [8]
> Сначала вызови WNetCancelConnection2, а потом уж WNetAddConnection2

Как оказалось все гораздо проще и смешнее, чем я ожидал.....Rouse_ куда выслать отсканированные этикетки от пива?



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
14-1127154468
palva
2005-09-19 22:27
2005.10.09
Поговорим о музыке


3-1124180759
lmz
2005-08-16 12:25
2005.10.09
Криптография базы данных


9-1117549211
new1
2005-05-31 18:20
2005.10.09
Динамическое освещение. Лайт Мэпы.


14-1126941471
Sergey_Masloff
2005-09-17 11:17
2005.10.09
Обладатели КПК дайте совет что купить


2-1125058102
_zx
2005-08-26 16:08
2005.10.09
запуск файла из командной строки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский