//Пример открытия стандартного диалога 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) ThenRaise Excepcion.Create('unable to map drive')
//так же существуют другие константы для определения возникшей ошибки //ERROR_ACCESS_DENIED, ERROR_ALREADY_ASSIGNED, и т.д. end;
//так же можно и отключить сетевой ресурс... procedure TForm1.Button2Click(Sender: TObject);
beginif WNetCancelConnection2( 'S:',0,TRUE) <> NO_ERROR thenRaise Exception.create('Error disconnecting map drive');
//соответственно можно использовать другие константы для определения ошибки//ERROR_DEVICE_IN_USE, ERROR_NOT_CONNECTED, и т.д. end;
Пример программирования на языке Delphi, демонстрирующий, как подключаться и отключаться к сети диска с помощью функций Windows API WNetConnectionDialog и WNetAddConnection2. В примере также показано, как отменить подключение с помощью WNetCancelConnection2.
Разбивка каждого процедуры:
Button1Click (используя WNetConnectionDialog):
Эта процедура открывает стандартное диалоговое окно, позволяющее пользователю выбрать ресурс сети,such as a disk or printer.
Button1Click (используя RESOURCETYPE_ PRINT):
Эта процедура аналогична предыдущей, но она конкретно подключается к ресурсу принтера вместо диска.
Button2Click:
Эта процедура использует структуру TNetResource, чтобы указать ресурс сети, локальное имя, удаленное имя и провайдера (если необходимо). Функция WNetAddConnection2 затем используется для подключения к указанному ресурсу. Если происходит ошибка при подключении, возникает исключение.
Button2Click (отключая):
Эта процедура использует функцию WNetCancelConnection2, чтобы отключить предыдущее подключение к сети диска. Если происходит ошибка при отключении, возникает исключение.
Некоторые примечания по коду:
Переменная Handle не определена в этом примере, поэтому предполагается, что это является валидным handle для основной формы.
Используются константы RESOURCETYPE_ DISK и RESOURCETYPE_ PRINT, чтобы указать тип ресурса сети, к которому нужно подключиться.
В второй процедуре поле lpRemoteName задается на \\myserver\public, что указывает удаленное имя ресурса сети. Вы должны заменить это на реальный путь к вашему сетевому диску.
Функция WNetAddConnection2 возвращает код ошибки, который можно использовать для определения успешности подключения. В этом примере если подключение не удается, возникает исключение. Вы можете использовать другие константы, такие как ERROR_ACCESS_DENIED, ERROR_ALREADY_ASSIGNED, и т.д., чтобы обрабатывать различные типы ошибок.
Функция WNetCancelConnection2 также возвращает код ошибки, который можно использовать для определения успешности отключения.
В целом, это пример демонстрирует, как подключаться и отключаться к сети диска с помощью Delphi и Windows API.
В статье описывается подключение сетевого диска в программировании на языке Delphi с использованием функции WNetConnectionDialog и структуры TNetResource.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.