네트워크 드라이브를 연결하는 방법을 알고 싶어요 예를 들어 Remote Drive ComNameC를 Local Drive F:에 연결하려고 합니다. 비주얼 베이직에서는 WAddNetConection(ShareDrive, "", LocalDrive)라는 API가 있는데 델파이에서는 지원을 ...
구창민
•
1999.08.28 21:56
정윤옥 께서 말씀하시기를...
> 네트워크 드라이브를 연결하는 방법을 알고 싶어요
> 예를 들어 Remote D...
> 네트워크 드라이브를 연결하는 방법을 알고 싶어요
> 예를 들어 Remote Drive ComNameC를 Local Drive F:에 연결하려고 합니다.
> 비주얼 베이직에서는 WAddNetConection(ShareDrive, "", LocalDrive)라는 API가 있는데 델파이에서는 지원을 하지 않는군요 이것은 윈도우 API가 아닙니까?
> 방법을 가르쳐 주세요
정윤옥님 안녕하세요?
2가지 방법이 있네요.
첫번째는 윈도우즈의 네트웍 드라이브 연결 대화상자를
띄우는 법입니다.
WNetConnectionDialog( Handle, RESOURCETYPE_DISK );
두번째는 프로그래밍으로 하는법.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// 네트워크 드라이브 연결
procedure TForm1.Button1Click(Sender: TObject);
var
lpszNetPath,
lpszPassword,
lpszLocalName: array[0..50] of Char;
rt: DWORD;
begin
StrPCopy(lpszPassword, '1234'); // 네트워크 드라이브(공유폴더)의 비밀번호
StrPCopy(lpszNetPath, 'Unify5insa'); // 네트워크 드라이브+공유폴더
StrPCopy(lpszLocalName, 'F:'); // 로컬 드라이브명
rt := WNetAddConnection(lpszNetPath, lpszPassword, lpszLocalName);
if rt = 7 then
begin
ShowMessage('네트워크 드라이브를 연결할 수 없습니다. 비밀번호를 확인하세요');
end
else if rt <> WN_SUCCESS then
begin
MessageDlg('네트워크 드라이브를 연결할 수 없습니다'+
', Return Code: ' + (IntToStr(rt)) ,
mtInformation, [mbOk], 0);
end
else
begin
ShowMessage('네트워크 드라이브가 설정되었습니다');
end;
end;
// 네트워크 드라이브 연결 해제
procedure TForm1.Button2Click(Sender: TObject);
var
lpszLocalName: array[0..50] of Char;
rt: DWORD;
begin
StrPCopy(lpszLocalName, 'F:'); // 로컬 드라이브명
rt := WNetCancelConnection(lpszLocalName, True);
if rt <> WN_SUCCESS then
begin
MessageDlg('네트워크 드라이브의 연결을 해제할 수 없습니다'+
', Return Code: ' + (IntToStr(rt)) ,
mtInformation, [mbOk], 0);
end
else
begin
ShowMessage('네트워크 드라이브의 연결이 해제되었습니다');
end;
end;
end.