Q&A

  • 네트워크 드라이브 연결에서,,,???


수고가 많으십니다.

초보 델파이 프로그래머입니다.



네트웍상에서 다른 컴퓨터의 공유된 폴더(패스워드 설정)를 연결하려고

아래와 같이 코딩을 했는데 에러가 발생했습니다.

(자료를 찾아서 코딩했음)



어떻게 해야하는지 무진장 힘이 듭니다.

고수님들의 조언을 부탁드립니다.



//*****************************************************************************//

<에러 내용>



1. DWARD 정의 되지않음.

2. WNetAddConnention 정의 되지 않음.

3. 위의 두 내용을 사용하려면 어떻게 해야 하는지 모르겠습니다.



<코딩 내용>



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Menus, ToolWin, ComCtrls, ExtCtrls, IniFiles, DBTables, StdCtrls,

Buttons, Db, Preview, Animate, ImgList;



type

TfrmTS000000 = class(TForm)

...

...



procedure TfrmTS000000.mnuTS131000Click(Sender: TObject);

var

lpszNetPath,

lpszPassword,

lpszLocalName : array[0..50] of Char;



rt : DWARD;

begin

StrPCopy(lpszPassword, '50');

StrPCopy(lpszNetPath, '전산담당1관리');

StrPCopy(lpszLocalName, 'X:');



rt := WNetAddConnention(lpszNetPath, lpszPassword, lpszLocalName);



if rt = 7 then

begin

ShowMessage('네트워크 드라이브를 연결할 수 없습니다.');

end

else if rt <> WN_SUCCESS then

begin

MessageDlg('네트워크 드라이브를 연결할 수 없습니다' + ',Return Code: '

+ (InToStr(rt), mtInformation, [mbOk], 0);

end

else

begin

ShowMessage('네트워크 드라이브가 설정되었습니다');

end;



end;



//*****************************************************************************//





2  COMMENTS
  • Profile
    김영대 2000.10.26 19:43
    안녕하세여..

    컴맹입니다..



    구문은 이상이 없는것같은데여...

    변수선언을 잘못하셨군여..



    rt : DWARD; //잘못된선언



    제가알기론 DWARD라는 타입은 없는걸루....



    이렇게 한번 해보시죠...



    rt : DWORD;



    참고루 제 소스를 실어 보내 드립니다.

    근데 제가 테스트는 해보지 못했습다..

    예전에 98에서는 되었었는데... 현재 2000을 쓰고 있어서여..

    즐코딩하세여..



    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    var

    NetPath,

    NETPassword,

    netLocalName: array[0..100] of Char;

    rt: DWORD;

    begin

    StrPCopy(netPassword, '1234'); // 네트워크 드라이브(공유폴더)의 비밀번호

    StrPCopy(NetPath, 'KEEPERTEST'); // 네트워크 드라이브+공유폴더

    StrPCopy(netLocalName, 'p:'); // 로컬 드라이브명



    rt := WNetAddConnection(NetPath, netPassword, netLocalName);



    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;







    남태식 wrote:

    >

    > 수고가 많으십니다.

    > 초보 델파이 프로그래머입니다.

    >

    > 네트웍상에서 다른 컴퓨터의 공유된 폴더(패스워드 설정)를 연결하려고

    > 아래와 같이 코딩을 했는데 에러가 발생했습니다.

    > (자료를 찾아서 코딩했음)

    >

    > 어떻게 해야하는지 무진장 힘이 듭니다.

    > 고수님들의 조언을 부탁드립니다.

    >

    > //*****************************************************************************//

    > <에러 내용>

    >

    > 1. DWARD 정의 되지않음.

    > 2. WNetAddConnention 정의 되지 않음.

    > 3. 위의 두 내용을 사용하려면 어떻게 해야 하는지 모르겠습니다.

    >

    > <코딩 내용>

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > Menus, ToolWin, ComCtrls, ExtCtrls, IniFiles, DBTables, StdCtrls,

    > Buttons, Db, Preview, Animate, ImgList;

    >

    > type

    > TfrmTS000000 = class(TForm)

    > ...

    > ...

    >

    > procedure TfrmTS000000.mnuTS131000Click(Sender: TObject);

    > var

    > lpszNetPath,

    > lpszPassword,

    > lpszLocalName : array[0..50] of Char;

    >

    > rt : DWARD;

    > begin

    > StrPCopy(lpszPassword, '50');

    > StrPCopy(lpszNetPath, '전산담당1관리');

    > StrPCopy(lpszLocalName, 'X:');

    >

    > rt := WNetAddConnention(lpszNetPath, lpszPassword, lpszLocalName);

    >

    > if rt = 7 then

    > begin

    > ShowMessage('네트워크 드라이브를 연결할 수 없습니다.');

    > end

    > else if rt <> WN_SUCCESS then

    > begin

    > MessageDlg('네트워크 드라이브를 연결할 수 없습니다' + ',Return Code: '

    > + (InToStr(rt), mtInformation, [mbOk], 0);

    > end

    > else

    > begin

    > ShowMessage('네트워크 드라이브가 설정되었습니다');

    > end;

    >

    > end;

    >

    > //*****************************************************************************//

    >

    >

  • Profile
    남태식 2000.10.26 22:03
    감사합니다, 김영대 고수님.

    정말 잘 되더군요.

    감격! 감격! 또 감격 !!



    실행을 하다보니 궁금해지던게 있습니다.

    코딩된 내용에 보면,

    ...



    if rt = 7 then

    begin

    ShowMessage('네트워크 드라이브를 연결할 수 없습니다. 비밀번호 확인요');

    end

    ...



    rt = 7 이라고 있는데,

    왜 여기에 값을 '7'을 넣는지 그리고 이 값의 의미는 무엇인지 궁금하네요.



    이러한 내용은 어디를 봐야만 알수가 있는지도,,, ^_^