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.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.26 21:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      1999.06.26 21:55
      최선기 께서 말씀하시기를... > fieldByName과 Parmabyname의 차이점 좀 자세히 알려주세요... > > 어...
    • 손창근
    • 1999.04.17 19:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.17 21:46
      그것은 자동으로 지원할텐데요... 컴퓨터에 전화접속 네트워킹이 설치되어 있고, 연결이 안되어있을때 네...
    • 1999.06.26 21:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      1999.06.28 03:01
      그 친구에게는 미안한데.. 제가 잘 아는 친구가 바코드 관련 프로그램을 전문적으로 만드는 사람입니다. ...
    • 조복기
      1999.06.26 21:14
      강양규 께서 말씀하시기를... > 안년하세요.. > DateTimePicker를 사용하고 있는데 > > Query를 사용...
    • 이정욱
      1999.04.16 02:17
      아무래도 케이블을 그냥 두갈래로 뽑으신것 같군요. 그렇게 하면 아마도 제데로 안될것 같네요... 그것보...
    • 화랑
      1999.04.16 03:06
      답변 감사합니다.. 문제는 제가 그 서버를 건드릴수가 없습니다. 지금 현재 나와있는 것은 프린터로 가...
    • 이정욱
      1999.04.16 05:08
      프린터포트를 제어하는것은 문제가 없습니다. 그것을 지원하는 컴포넌트를 본적이 있는데.... 아마도 찾아...
    • 화랑
      1999.04.17 18:11
      매번 감사합니다.. 저기 한가지만 더 하고 싶은데.. 프린트는 앱슨을 쓰거든요.. 혹시 서로 전달되는 ...
    • 하남수
    • 1999.06.26 20:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      1999.06.26 20:42
      하남수 께서 말씀하시기를... > 저는 오라클을 사용하여 프로그래밍을 하고 있습니다. > 그리고 제가 알...
    • 하남수
      1999.06.26 20:36
      델피 도움말에 다음가 같은 글이 있군요. 찾아보지도 않고 질문을 했내 그래도 한가지더 이상한 점은 SQL...
    • 김영대
      1999.06.26 20:14
      이호선 께서 말씀하시기를... > 안녕하세요. > 델파이 프로그램에서 ftp서버의 화일을 다운 받을려하는데...
    • 엠마
    • 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 09:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최훈
      1999.06.26 19:32
      데이타베이스에서 자료를 읽어와서 트리를 구성하는데 자료가 없을때 노드가 하나도 없는데 트리를 클릭...
    • 이정욱
      1999.04.18 09:46
      기본프린터에 직접 쓰기 팁 입니다. 아마도 업무용 개발자분께는 아주 유용한 자료가 되리라 생각이 듭니...
    • 김영대
      1999.06.26 20:20
      최훈 께서 말씀하시기를... > 데이타베이스에서 자료를 읽어와서 트리를 구성하는데 > 자료가 없을때 노...
    • 박성훈
    • 1999.06.26 19:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.26 19:53
      박성훈 께서 말씀하시기를... > sql.add('Insert into "User.db" values('1111','1111','관리자',0)'); >...
    • 조복기
      1999.06.26 19:50
      박성훈 께서 말씀하시기를... > sql.add('Insert into "User.db" values('1111','1111','관리자',0)'); ...
    • 하남수
      1999.06.26 19:41
      "user.db'때문이 아닌가요 " "없어야 될 것 같은데.... 박성훈 께서 말씀하시기를... > sql.add('Ins...
    • 엠마
    • 1999.04.17 06:04
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 전 재헌
      1999.06.26 19:21
    • 김영해
      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.26 17:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.26 18:56
      ActiveX컨트롤이라면 델파이 내부로 일딴 임포트를 하셔야 합니다.. 컴포넌트 메뉴에 import activex...
    • 장철진
    • 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.06.26 17:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.26 17:39
      박성훈 께서 말씀하시기를... > 에디트컴포넌트에서 코드상으로 undo기능을 구현하려면 어떻게 합니까? >...
    • 최석기
      1999.06.26 17:37
      박성훈 께서 말씀하시기를... > panel1.caption:=formatfloat('#,##0',strtofloat(s)); > > 여기서 pan...
    • 이슬
    • 1999.04.15 03:34
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.17 08:00
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 신호성
      1999.04.16 01:36
      > 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. > 근데, DBGrid에...
    • 박종모
      1999.04.15 04:44
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 글쎄요
      1999.04.15 05:41
      추가로 답변합니다. 2번째 건데 답변이 잘 못된 것 같아요. 가장 좋은 방법은 DBGRID 대신에 STRINGGRID...
    • 김영해
      1999.04.15 08:49
      안녕하세요 application을 개발하다 문제가 있어 이렇게 다시 질문합니다. 제목과 같이 일정시간 동안 입...
    • 김영대
      1999.06.26 20:16
      이한나(소라동생) 께서 말씀하시기를... > 리치에디터에서 콜럼값과 라인값을 리턴받아 그에 해당하는 문...
    • 이정욱
      1999.04.15 10:21
      아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
    • 이한나(소라동생)
      1999.06.27 12:08
      김영대 께서 말씀하시기를... > 이한나(소라동생) 께서 말씀하시기를... > > 리치에디터에서 콜럼값과 라...
    • 김영해
      1999.04.17 07:48
      감사합니다.이정욱님 많은 도움이 되었습니다.