Q&A

  • 공유는 어떻게.....
안녕하세요 또 질문을 하게 되네요.

LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 좀 가르켜 주세요...

(윈도우에서가 아니라 델파이에서 공유를 만드는 방법을 예기 하는 겁니다.)

아시는 분은 제발 좀알려주세요.....초보라서 상세하게.....

좋은 밤 되세요...





2  COMMENTS
  • Profile
    김영대 1999.04.19 18:49
    장철진 wrote:

    > 안녕하세요 또 질문을 하게 되네요.

    > LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 좀 가르켜 주세요...

    > (윈도우에서가 아니라 델파이에서 공유를 만드는 방법을 예기 하는 겁니다.)

    > 아시는 분은 제발 좀알려주세요.....초보라서 상세하게.....

    > 좋은 밤 되세요...

    >

    >



    안녕하세요 김영대입니다

    아래 예제는 Windows 95/98 에서만 정확히 동작합니다

    NT에서는 SVRAPI.DLL이 아닌 다른 DLL 이 사용되지만

    NetShareAdd(), NetShareDel() API의 사용함에 있어서 공유정보

    구조체만 다를뿐 사용법은 동일합니다



    // 아래 예제는 Windows NT/Windows 2000 는 지원하지 않습니다

    // 다른 플랫폼은 MSDN 사이트를 참고하세요

    // http://msdn.microsoft.com/library/sdkdoc/network/ntlmapi_18bz.htm



    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;



    type

    // Win95/98 에서는 share info는 0,1,2,50 structure 만 사용가능

    Share_Info50 = packed record

    shi50_netname : array[0..12] of Char; {13}

    shi50_type : Byte;

    shi50_flags : Word;

    shi50_remark : PChar;

    shi50_path : PChar;

    shi50_rw_password : array[0..8] of Char; {9}

    shi50_ro_password : array[0..8] of Char;

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    function NetShareAdd(ServerName: PChar;

    ShareLevel: SmallInt;

    Buffer: Pointer;

    Size: Word): Integer; stdcall; external 'SVRAPI.DLL';



    function NetShareDel(ServerName: PChar;

    NetName: PChar;

    Reserved: Word): Integer; stdcall; external 'SVRAPI.DLL';



    function ShareResource(ServerName: PChar; FilePath: PChar;

    NetName: PChar; Remark: PChar;

    ShareType: Byte; Flags: Word;

    RWPass: PChar; ROPass: PChar): Integer;

    var

    MyShare: Share_Info50;

    PMyShare: ^Share_Info50;

    begin

    strLcopy(MyShare.shi50_netname, NetName, 13);

    MyShare.shi50_type := ShareType;

    MyShare.shi50_flags := Flags;

    MyShare.shi50_remark := Remark;

    MyShare.shi50_path := FilePath;

    strLcopy(MyShare.shi50_rw_password, RWPass, 9);

    strLcopy(MyShare.shi50_ro_password, ROPass, 9);

    PMyShare := @MyShare;

    Result := NetShareAdd(ServerName, 50, PMyShare, SizeOf(MyShare));

    end;



    function DeleteShare(ServerName: PChar; NetName: PChar): Integer;

    begin

    Result := NetShareDel(ServerName,NetName, 0);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    rt: Integer;

    begin

    rt := ShareResource(nil, // 컴퓨터 이름 (nil 은 Local Machine을 의미합니다)

    'C:ZZZ', // 공유할 폴더 (전부 대문자로 지정)

    'ZZZ', // 공유이름

    '공유예제', // 설명

    0, // 0=디렉토리 공유, 1=프린터 공유

    // 256 or 1= 읽기 전용, 256 or 2=읽기/쓰기, 256 or 1 or 2=암호에 따라 다름

    256 or 1 or 2,

    '1111', // 읽기/쓰기 암호

    '2222'); // 읽기 전용 암호

    if rt = 0 then

    ShowMessage('폴더가 공유되었습니다')

    else

    ShowMessage('폴더를 공유할 수 없습니다. 에러번호('+IntToStr(rt)+')');

    end;



    procedure TForm1.Button2Click(Sender: TObject);

    var

    rt: Integer;

    begin

    rt := DeleteShare(nil, 'ZZZ');

    if rt = 0 then

    ShowMessage('폴더의 공유를 해제하였습니다')

    else

    ShowMessage('폴더의 공유를 해제할 수 없습니다. 에러번호('+IntToStr(rt)+')');

    end;



    end.



  • Profile
    구창민 1999.04.18 02:26
    장철진 wrote:

    > 안녕하세요 또 질문을 하게 되네요.

    > LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 좀 가르켜 주세요...

    > (윈도우에서가 아니라 델파이에서 공유를 만드는 방법을 예기 하는 겁니다.)

    > 아시는 분은 제발 좀알려주세요.....초보라서 상세하게.....

    > 좋은 밤 되세요...

    >

    >



    장철진님 안녕하세요?

    NT에서는 테스트 해보지 못했습니다.

    아래글은 김영대님이 올리신 글인데

    한번 테스트 해보세요. 되면 결과도 올려주시구요.

    그럼 .. 도움되시기 바래요.



    네트워크 드라이브 연결/해제

    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.

    • 박성훈
    • 1999.06.28 02:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.28 12:15
      불행히도 API를 델파이로 다룬 서적은 아직가지는 없습니다. 미래에는 생기기를 기원하지만... 쩝.. 일단 ...
    • 엠마
    • 1999.04.17 06:04
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.17 07:03
    • 엠마
      1999.04.17 09:18
    • 김영해
      1999.04.17 10:34
    • 엠마
      1999.04.17 19:40
    • 김영해
      1999.04.18 04:12
    • 송동일
    • 1999.06.28 01:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.28 12:20
      쩝.. 비베는 잘 모르지만.... 옛날 베이직을 참고삼아서.. 흐.. var ActiveLonMarkObject : TLcaLon...
    • 김영해
    • 1999.04.18 04:00
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박주필
      1999.06.27 23:17
      네트워크에서 원하는 IP 주소로 PING을 하는 프로그램을 만들고 싶습니다.... 어떤 콤퍼넌트를 어디에 ...
    • 이정욱
      1999.04.18 22:34
      vcl40.bpl을 패키지에 포함을 하면서 다른 패키지와 충돌이 있는것 같습니다. 패키지를 만드실때 사용하지...
    • 조민경
      1999.06.28 21:44
      박주필 께서 말씀하시기를... > 네트워크에서 원하는 IP 주소로 PING을 하는 프로그램을 만들고 싶습니다....
    • 안치봉
      1999.04.18 10:10
      김영해 wrote: > 회사에서 어플리케션을 개발하는 중에 있습니다. > 그런데 이전까지 멀쩡하던 프로젝트...
    • 장영선
    • 1999.04.17 22:41
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최도석
      1999.06.27 22:24
      dbgrid에서 필드이동이 아닌 행이동(스크롤바, 마우스, 키보드포함)이 발생하면 그 레코드의 필드내용에 ...
    • 구창민
      1999.04.18 02:37
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 이훈신
      1999.06.29 12:43
      최도석 께서 말씀하시기를... > dbgrid에서 필드이동이 아닌 행이동(스크롤바, 마우스, 키보드포함)이 >...
    • 신인재
      1999.04.18 02:33
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 박성훈
      1999.06.28 03:08
      전문가가 아니라서 죄송하지만, 레코드이동에 따른 이벤트는 테이블 컴포넌트의 scroll이벤트가 아닌가요?...
    • 무명인
    • 1999.06.27 11:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.06.27 23:43
      무명인 께서 말씀하시기를... > > 집(전화접속연결)에서는 파일을 주고, 받기(pc가 1대뿐인 관계로 집...
    • 장영선
    • 1999.04.17 22:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.04.18 02:37
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 신인재
      1999.04.18 02:33
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 장철진
    • 1999.04.17 08:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.19 18:49
      장철진 wrote: > 안녕하세요 또 질문을 하게 되네요. > LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 ...
    • 구창민
      1999.04.18 02:26
      장철진 wrote: > 안녕하세요 또 질문을 하게 되네요. > LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 ...
    • 김재현
    • 1999.04.12 23:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 배리스
      1999.04.18 02:04
      김재현 wrote: > 델파이로 CGI 프로그래밍을 하고 있습니다. > ISAPI 방식이 아닌 Standard-alone(EXE 방...
    • 이정욱
      1999.06.28 12:27
      한델의 (www.delphi.co.kr)에 가셔서 한델강의실에 가시면 '컴포넌트 넌! 이제 끝이야! (#1)'를 보세요. ...
    • 홍희석
      1999.06.28 22:44
      이정욱 께서 말씀하시기를... > 한델의 (www.delphi.co.kr)에 가셔서 한델강의실에 가시면 '컴포넌트 넌! ...
    • 장영선
    • 1999.04.17 22:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.04.18 02:37
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 신인재
      1999.04.18 02:33
      장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
    • 이진영
    • 1999.06.27 01:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.28 12:28
      아마도 설치가 제데로 되지 않은것 같습니다. BDE를 포함하여 재 설치를 해보세요. NT에서도 델파이는 잘...
    • 손창근
      1999.04.17 19:17
      안녕하세요. 오공이 입니다. 다름이 아니라 제가 네트웍쪽을 잘 몰라서 그러는데 통신프로그램을 보면...
    • 이정욱
      1999.06.28 12:30
      Image.Picture.Bitmap.Assign(nil); 해보세요. 문승진 께서 말씀하시기를... > TImage 에서 LoadFrom...
    • 이정욱
      1999.04.17 21:46
      그것은 자동으로 지원할텐데요... 컴퓨터에 전화접속 네트워킹이 설치되어 있고, 연결이 안되어있을때 네...
    • 이호선
    • 1999.04.17 20:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 문영진
      1999.06.26 23:03
      도움을 청합니다. 도저히 풀리지가 않는군요. Byte형 Array 변수가 있는데 여기서 64비트를 잘라내어서 ...
    • 이정욱
      1999.04.18 09:43
      쩝.. 제능력으로는 안되는군요..... 해보려고 했지만.. 후... 누군가 ActiveX를 무지 잘하는 사람은 가능...
    • 초보
    • 1999.06.26 21:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.06.26 22:42
      초보 께서 말씀하시기를... > 쿼리를 해서 텍스트 파일을 생성하던 중에 List index out of bounds(7)에...