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.04.19 19:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.04.20 00:12
      한태진 wrote: > 안녕하세요 > 오랜간만에 오니 좀더 홈페이지가 멋지게 변화되었군요.. > 창민님의 노...
    • 김장섭
    • 1999.04.19 19:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.19 19:41
      김장섭 wrote: > 안녕하세요 > 트리뷰를 사용하고 있습니다. 트리뷰로 메뉴를 만드는데요(doubleClick하...
    • 김현국
    • 1999.04.19 17:15
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.19 19:28
    • 김현국
      1999.04.19 20:19
    • 안치봉
      1999.04.19 20:59
    • 김현국
      1999.04.19 22:16
    • 이정욱
      1999.04.19 23:03
    • 전철호
      1999.04.20 03:52
    • 하윤철
      1999.04.22 02:04
      빈센트 wrote: > 두개의 테이블을 연결해 쿼리한 후 그룹별로 소계를 내어 출력하려합니다. > 퀵 레포트...
    • 김영해
    • 1999.04.19 06:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.04.19 06:40
      김영해 wrote: > 안녕하세요 > 매번 이렇게 도움만 요청하려니 부끄럽군요.--; > 하지만 다시 용기를 내...
    • 채현우
    • 1999.04.19 04:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.19 04:43
      채현우 wrote: > 안녕하세요. > 최대 2-3대 정도의 랜에 물려 사용할 DB어플을 만들려고 하는데요 > Par...
    • 엠마
    • 1999.04.19 02:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김영해
    • 1999.04.18 04:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.18 22:34
      vcl40.bpl을 패키지에 포함을 하면서 다른 패키지와 충돌이 있는것 같습니다. 패키지를 만드실때 사용하지...
    • 안치봉
      1999.04.18 10:10
      김영해 wrote: > 회사에서 어플리케션을 개발하는 중에 있습니다. > 그런데 이전까지 멀쩡하던 프로젝트...
    • 장영선
    • 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 20:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.18 09:43
      쩝.. 제능력으로는 안되는군요..... 해보려고 했지만.. 후... 누군가 ActiveX를 무지 잘하는 사람은 가능...
    • 손창근
    • 1999.04.17 19:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.17 21:46
      그것은 자동으로 지원할텐데요... 컴퓨터에 전화접속 네트워킹이 설치되어 있고, 연결이 안되어있을때 네...
    • 이동화
    • 1999.04.17 09:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.18 09:46
      기본프린터에 직접 쓰기 팁 입니다. 아마도 업무용 개발자분께는 아주 유용한 자료가 되리라 생각이 듭니...
    • 장철진
    • 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.17 06:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.17 07:29
      이슬 wrote: > 테이블에서 > 이름,생년월일,전화번호등등의 자료를 검색하여 폼에 뿌려줄때 string는 나...
    • 엠마
    • 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.04.17 05:22
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.17 05:35
      아래 답변이 있었듯이 마스크에딧에 포함된 문자까지 포함해서 길이를 잡으세요. A(12)가 아니라 A(20)정...
    • 엠마
      1999.04.17 06:07
      이정욱 wrote: > 아래 답변이 있었듯이 마스크에딧에 포함된 문자까지 포함해서 길이를 잡으세요. > A(12...
    • 김영해
      1999.04.17 07:19
      엠마 wrote: > 이정욱 wrote: > > 아래 답변이 있었듯이 마스크에딧에 포함된 문자까지 포함해서 길이를 ...
    • 엠마
      1999.04.19 02:24
      > > a(20)으로 잡아도 마찬가지예요.. > > 그런데 입력시 공백이 있으면.. 에러발생 > > 스페이스...
    • 박병영
    • 1999.04.17 03:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.17 03:33
      박병영 wrote: > 안녕하십니까? 구창민님 ^.^ > 헬퍼가 새로와졌네요. > 지난번 부탁한 답변이 없어 다...
    • 엠마
    • 1999.04.17 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.17 07:08
      엠마 wrote: > 입력폼에서 전화번호입력을 maskedit로 지역번호 4자리 국번4,전화번호4로 입력해 테이블에...
    • bluepine
      1999.04.17 01:37
      엠마 wrote: > 입력폼에서 전화번호입력을 maskedit로 지역번호 4자리 국번4,전화번호4로 입력해 테이블에...