Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Отключение сетевые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 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
14-1126699563
Daro
2005-09-14 16:06
2005.10.09
Есть такая проблема


14-1126792050
TG
2005-09-15 17:47
2005.10.09
Сайт


1-1127022509
Navi
2005-09-18 09:48
2005.10.09
RichEdit, WordWrap и Lines.Text


2-1125304120
-=snoop=-
2005-08-29 12:28
2005.10.09
не работает select


1-1127198832
ZeroDivide
2005-09-20 10:47
2005.10.09
Винда не может завершить работу, когда мой процесс запущен !