Q&A

  • 자신의 Directory를 공유...
지금 제가 하려는 것은 자신의 PC 특정 Directory를 공유를 할려고 합니다

그렇게 되면 Lan으로 연결된 다른 PC에서 제가 공유를 걸어 놓은 File을 복사해 갈수 있겠지요

물론 네트워 드라이브는 잡을 필요도 없구요

혹시 자신의 Directory를 공유하는 방법(마치 탐색기에서 Directory를 선택하고 마우스 오른쪽 버튼을 눌러 공유항목을 선택하는 것 처럼...)

아시는 분은 알려 주시면 감사 하겠습니다

부탁드립니다

2  COMMENTS
  • Profile
    손용석 2001.02.24 00:00
    비가 오네여~~ %^.^%



    부족하나마 몇자 적어보겠습니다...^^



    디렉토리 공유는 검색해보시면 많은 자료들이 나오는데..

    암튼 제가 테스트해 본 소스를 통째로 올려 보겠습당~~!!

    저도 어디서 찾아서 했던겁니다..~~!!

    첨에 찾았던거는 95에서만 되고 98/ME에서는 안되더군요~~!!

    그래서 Delphi Help보고 API를 바꾸니까 잘되군요~!



    참고:

    NT는 잘 모르겠고 2000에서는 DLL을 찾을수 없다는 에러 메세지가...

    95/98/ME 에서는 잘 돌아가더군요...

    탐색기에서는 공유되었는데 나타나지 않는 경우도 있습니다..

    확인 할려면 시작-실행 '자기컴명공유명'을 치면 올라올겁니다.



    아래소스 참고



    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;



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

    // Windows NT에서 share info는 0,1,2,501,502,1005 structure 만 사용가능

    Share_Info50 = packed record

    shi50_netname : array[0..12] of Char;

    shi50_type : Byte;

    shi50_flags : Word;

    shi50_remark : PChar;

    shi50_path : PChar;

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

    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:WINDOWS', // 공유할 폴더 (전부 대문자로 지정)

    'TEST$', // 공유이름

    '공유예제', // 설명

    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, 'DB$');



    if rt = 0 then ShowMessage('폴더의 공유를 해제하였습니다')

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

    end;



    end.







    정준길 wrote:

    > 지금 제가 하려는 것은 자신의 PC 특정 Directory를 공유를 할려고 합니다

    > 그렇게 되면 Lan으로 연결된 다른 PC에서 제가 공유를 걸어 놓은 File을 복사해 갈수 있겠지요

    > 물론 네트워 드라이브는 잡을 필요도 없구요

    > 혹시 자신의 Directory를 공유하는 방법(마치 탐색기에서 Directory를 선택하고 마우스 오른쪽 버튼을 눌러 공유항목을 선택하는 것 처럼...)

    > 아시는 분은 알려 주시면 감사 하겠습니다

    > 부탁드립니다

  • Profile
    정준길 2001.02.24 00:42
    정말 고맙습니다

    아주 많은 도움이 되었습니다

    감사합니다

    손용석 wrote:

    > 비가 오네여~~ %^.^%

    >

    > 부족하나마 몇자 적어보겠습니다...^^

    >

    > 디렉토리 공유는 검색해보시면 많은 자료들이 나오는데..

    > 암튼 제가 테스트해 본 소스를 통째로 올려 보겠습당~~!!

    > 저도 어디서 찾아서 했던겁니다..~~!!

    > 첨에 찾았던거는 95에서만 되고 98/ME에서는 안되더군요~~!!

    > 그래서 Delphi Help보고 API를 바꾸니까 잘되군요~!

    >

    > 참고:

    > NT는 잘 모르겠고 2000에서는 DLL을 찾을수 없다는 에러 메세지가...

    > 95/98/ME 에서는 잘 돌아가더군요...

    > 탐색기에서는 공유되었는데 나타나지 않는 경우도 있습니다..

    > 확인 할려면 시작-실행 '자기컴명공유명'을 치면 올라올겁니다.

    >

    > 아래소스 참고

    >

    > 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;

    >

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

    > // Windows NT에서 share info는 0,1,2,501,502,1005 structure 만 사용가능

    > Share_Info50 = packed record

    > shi50_netname : array[0..12] of Char;

    > shi50_type : Byte;

    > shi50_flags : Word;

    > shi50_remark : PChar;

    > shi50_path : PChar;

    > shi50_rw_password : array[0..8] of Char;

    > 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:WINDOWS', // 공유할 폴더 (전부 대문자로 지정)

    > 'TEST$', // 공유이름

    > '공유예제', // 설명

    > 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, 'DB$');

    >

    > if rt = 0 then ShowMessage('폴더의 공유를 해제하였습니다')

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

    > end;

    >

    > end.

    >

    >

    >

    > 정준길 wrote:

    > > 지금 제가 하려는 것은 자신의 PC 특정 Directory를 공유를 할려고 합니다

    > > 그렇게 되면 Lan으로 연결된 다른 PC에서 제가 공유를 걸어 놓은 File을 복사해 갈수 있겠지요

    > > 물론 네트워 드라이브는 잡을 필요도 없구요

    > > 혹시 자신의 Directory를 공유하는 방법(마치 탐색기에서 Directory를 선택하고 마우스 오른쪽 버튼을 눌러 공유항목을 선택하는 것 처럼...)

    > > 아시는 분은 알려 주시면 감사 하겠습니다

    > > 부탁드립니다

    • 최용일
      2001.02.24 01:24
      안녕하세요. 최용일입니다. 객체를 Free한다해도 참조변수에는 nil이 할당되지 않습니다. 이전에 생성되...
    • 최용일
      2001.02.24 01:05
      안녕하세요. 최용일입니다. M의 데이타형에 따라서 다라지겠죠... 만일 M이 PChar형이라면 M := '나...
    • 델초
      2001.02.24 01:57
      unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,...
    • 최용일
      2001.02.24 02:19
      안녕하세요. 최용일입니다. GlobalAlloc함수가 리턴하는것은 힙에 할당된 메모리포인터(메모리 핸들)입...
    • 델초
      2001.02.24 02:31
      우선 감사하다는 말부터 드리구여.. 용일님 같은 분덜 땜시 저 같은 초보가 잼나게 공부를 할수 있네여.. ...
    • 델초
      2001.02.24 01:45
      우선 답변에 감사하구여... m의 형은 global형입니다.... 이 글로발형에다 얼케 넣어야 할지 머르겠네여....
    • 최용일
      2001.02.24 01:50
      무슨 말씀이신지???? global이라는 데이터타입이 있나요??? 첨들어보는건데요.. 사용자 정의 데이터 ...
    • zerodog
    • 2001.02.24 00:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아폴론
      2001.02.24 01:25
      zerodog wrote: > FormP23 이라는 퀵레포트를 만들고여... 퀵레포트를 더블클릭했을때 환경을 설정하는 >...
    • 손님
      2001.02.25 12:04
      퀵리포트 내의 테이블이나 쿼리의 active 가 true 인지... 확인 해보세요. 아폴론 wrote: > zerod...
    • Click
      2001.02.24 00:53
      델걸음마 wrote: > 안녕하세요. > 항상 코딩하다가 막히면 찾는 곳이 되었네요. ^^;; > 고수님들의 답...
    • 델걸음마
      2001.02.24 01:21
      님 감사합니다. 고수되서 답변 달 수 있는 그날을 위하여.... ^^
    • 쭈야
    • 2001.02.24 00:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 손용석
      2001.02.24 00:54
      부족하나마 몇자 적어 보겠습니다...!! #^.^# 요즘은 질문이 너무 간단해서 뭘 질문하는지 이해하기가 ...
    • 쭈야
      2001.02.24 00:59
      디비는 오라클사용하고 있구여 당그니 스토어프로시저 생성시 sql에서 테스트하여 프로시저를 생성 했답니...
    • 손용석
      2001.02.24 01:10
      허걱 넘 지송지송~~! 제가 넘 게을러서 키보드치기가 싫어서 그만~~ ㅡㅡ; 스프 : Stored Procedure ...
    • 최용일
      2001.02.24 01:01
    • 초보중짱
      2001.02.24 01:51
    • 최용일
      2001.02.24 01:58
    • 초보중짱
      2001.02.24 03:20
    • 최용일
      2001.02.24 04:34
    • 초보중짱
      2001.02.24 06:17
    • 최용일
      2001.02.24 08:08
    • 삼식이
    • 2001.02.24 00:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.24 00:42
      안녕하세요. 최용일입니다. MDI메인폼은 Application의 메인폼만이 될수 있습니다. 보니까 로그인화면을...
    • 손용석
      2001.02.24 00:15
      부족하나마 ... 몇자 *^.^* 제가 델4는 안써봐서... ㅡㅡ; dpl은 델3고 델5는 BPL이지용 ... ^^ 메...
    • 왕초보
      2001.02.23 23:11
      초짜의 델파이 wrote: > 델파이를 공부하고 있는 사람입니다. > 제가 Round()라는 함수에 대해서 알고 싶...
    • 초짜의 델파이
      2001.02.23 23:55
      왕초보 wrote: > 초짜의 델파이 wrote: > > 델파이를 공부하고 있는 사람입니다. > > 제가 Round()라는 ...
    • 정준길
    • 2001.02.23 22:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 손용석
      2001.02.24 00:00
      비가 오네여~~ %^.^% 부족하나마 몇자 적어보겠습니다...^^ 디렉토리 공유는 검색해보시면 많은 자...
    • 정준길
      2001.02.24 00:42
      정말 고맙습니다 아주 많은 도움이 되었습니다 감사합니다 손용석 wrote: > 비가 오네여~~ %^.^% > ...
    • 아폴론
      2001.02.23 23:05
      김재규 wrote: > 안녕하셔요.. > 심각한 문제가 발생해서 문의 드립니다. 이전에 이런 질문이 있었는데...
    • 초보
    • 2001.02.23 21:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • yytr
      2001.02.24 00:08
      장민우 wrote: > DELPHI INSTALL 할 때 초기화면 같은 경우 일반 윈도우 폼이 아니고 쪼금 특별한 경우 ...
    • 아직도 못 구했다면..
      2001.04.10 17:52
      급해여! wrote: > 나와있는 글들을 보고 김영대님 자료실에서 받아서 설치했는데 > 안되네요... > Dmitr...