Q&A

  • 컴퓨터의 공유 폴더
원격지 컴퓨터의 공유 폴더를 List 하는 방법은?

1  COMMENTS
  • Profile
    이정욱 1999.05.11 20:26
    공유정보를 읽어오는것입니다. 김영대님의 팁에서 가져왔습니다.



    // 아래 예제는 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;

    Memo1: TMemo;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    type

    // 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; {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 NetShareGetInfo(ServerName: PChar;

    NetName: PChar;

    ShareLevel: SmallInt;

    Buffer: Pointer;

    Size: Word;

    var Used: Word): Integer; stdcall external 'SVRAPI.DLL';



    function GetShareInfo(ServerName: PChar;

    NetName: PChar;

    var ShareStruct: Share_Info50): Integer;

    var

    PMyShare: ^Share_Info50;

    AmountUsed: Word;

    Error: Integer;

    begin

    PMyShare := AllocMem(255);

    // 50 -> for Win95/98 peer servers

    Error := NetShareGetInfo(ServerName, NetName, 50, PMyShare, 255, AmountUsed);

    if Error = 0 then // 에러없음

    begin

    ShareStruct.shi50_netname := PMyShare.shi50_netname;

    ShareStruct.shi50_type := PMyShare.shi50_type;

    ShareStruct.shi50_flags := PMyShare.shi50_flags;

    ShareStruct.shi50_remark := PMyShare.shi50_remark;

    ShareStruct.shi50_path := PMyShare.shi50_path;

    ShareStruct.shi50_rw_password := PMyShare.shi50_rw_password;

    ShareStruct.shi50_ro_password := PMyShare.shi50_ro_password;

    end;

    FreeMem(PMyShare);

    Result := Error;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    Share_Info: Share_Info50;

    rt: Integer;

    begin

    Memo1.Lines.Clear;

    FillChar(Share_Info, SizeOf(Share_Info50), 0);



    // * Local Machine 이 아닌 원격지 컴퓨터의 경우는 정확히 동작하지 않습니다

    // '김영대' -> 컴퓨터 이름 (nil 은 Local Machine을 의미합니다)

    // 'ZZZ' -> 공유이름

    rt := GetShareInfo('김영대', 'ZZZ', Share_Info);

    if rt = 0 then

    begin

    Memo1.Lines.Add('공유이름: '+Share_Info.shi50_netname);

    if Share_Info.shi50_type = 0 then

    Memo1.Lines.Add('공유 종류: 디렉토리 공유')

    else if Share_Info.shi50_type = 1 then

    Memo1.Lines.Add('공유 종류: 프린터 공유');

    Memo1.Lines.Add('전체 경로: '+Share_Info.shi50_path);

    Memo1.Lines.Add('설명: '+StrPas(Share_Info.shi50_remark));

    if Share_Info.shi50_flags = (256 or 1) then

    Memo1.Lines.Add('사용 권한: 읽기 전용')

    else if Share_Info.shi50_flags = (256 or 2) then

    Memo1.Lines.Add('사용 권한: 읽기/쓰기')

    else if Share_Info.shi50_flags = (256 or 1 or 2) then

    Memo1.Lines.Add('사용 권한: 암호에 따라 다름');



    Memo1.Lines.Add('읽기/쓰기 암호: '+Share_Info.shi50_rw_password);

    Memo1.Lines.Add('읽기 전용 암호: '+Share_Info.shi50_ro_password);

    end

    else

    begin

    Memo1.Lines.Add('정보를 읽어올 수 없습니다. 에러번호('+IntToStr(rt)+')');

    end;

    end;



    end.



    아무게 wrote:

    > 원격지 컴퓨터의 공유 폴더를 List 하는 방법은?





    • 현동식
    • 1999.05.12 19:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.12 19:39
      델파이에서 ActiveX폼을 만들어서 웹페이지에 띄우세요... 델파이는 ActiveX 폼을 만들기가 쉽죠...File/N...
    • 김명호
    • 1999.05.12 18:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조준형
      1999.05.21 23:52
      김명호 wrote: > Delphi 3.0에서 Midas관련해서 Test를 하려고 간단한 Program을 만들었는데 > Client에...
    • 이정욱
      1999.05.12 20:43
      사실 아래와 같이 하여도 문제는 발생하지 않습니다. 혹시 Uses문에 어떻게 하셨는지 모르겠네요.. Form2...
    • 송수정
    • 1999.05.12 03:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.12 06:51
      송수정 wrote: > 폼에 Image 컴포넌트를 놓고 일반 Text File 을 출력하는것 까지는 됐는데 > 문제는 ...
    • 송수정
      1999.05.13 03:21
      안치봉 wrote: > 송수정 wrote: > > 폼에 Image 컴포넌트를 놓고 일반 Text File 을 출력하는것 까지는...
    • 김봉재
    • 1999.05.12 02:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.12 05:19
      이런 부분을 한방에 할 수 있는 방법은 없습니다. 전역변수로 Boolean값을 정의 하고 FileListBox1에 M...
    • 강신구
    • 1999.05.12 02:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.12 18:27
      강신구 wrote: > 안녕하세요.. > > 실행중인 Process의 ProcessID로 그 Process의 윈도우 핸들을 > 구...
    • 신인재
      1999.05.12 04:17
      HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // po...
    • 송재환
    • 1999.05.12 02:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.05.12 08:13
      송재환님 안녕하세요? 하루는 24시간이니 날짜연산을 하세요. 아래는 김영대님이 올리신 날짜연산 예제...
    • 이호선
    • 1999.05.12 02:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.12 05:10
      한델 자료실에 있는 ICS를 이용해 보시지요.... 그럼 Character Set을 정하실 수 있을 겁니다. 이호...
    • chos
    • 1999.05.12 02:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.12 17:20
      chos wrote: > 델파이 4로 작성한 프로그램을 인스톨쉴드로 배포했는데 인스톨되는 컴퓨터의 > > ...
    • 땡글이
    • 1999.05.12 00:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.12 02:01
      땡글이 wrote: > 실력은 엄꼬 궁금한것만 많은 왕초봅니다.... > 어제 올려주신 Q&A를 나름대로 봤는데요...
    • 안치봉
      1999.05.12 01:57
      땡글이 wrote: > 실력은 엄꼬 궁금한것만 많은 왕초봅니다.... > 어제 올려주신 Q&A를 나름대로 봤는데요...
    • 이호선
    • 1999.05.12 00:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.12 02:00
      치봉님께서 답변을 해주셨지만 조금 더 가닥을 잡기위해.. ^^; 일단 TBitmap을 생성하세요. 그리고 이미...
    • 안치봉
      1999.05.12 01:50
      이호선 wrote: > 안녕하세요. > 이미지를 이미지 콤퍼넌트를 이용하지 않고 지정된 화일만을 가지고 > ...
    • 이지훈
    • 1999.05.11 23:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.12 02:29
      오라클을 접속하기 위해서는 sql-net인가 오라클에서 배포하는 네트웍 모듈이 있습니다. 이것을 깔아 주...
    • 왕초보
    • 1999.05.11 22:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.12 01:46
      왕초보 wrote: > 프로젝트 내의 form1, form2, form3중 form1만 프로젝트 옵션에서 > auto creation이고 ...
    • 왕초보
      1999.05.12 02:11
      안치봉 wrote: > 왕초보 wrote: > > 프로젝트 내의 form1, form2, form3중 form1만 프로젝트 옵션에서 >...
    • 최석기
    • 1999.05.11 21:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.11 22:26
      먼저 OnChange이벤트를 재정의를 하십시요. 그리고 ChangeBySelf라는 변수를 Boolean형으로 주시구요.. O...
    • 최석기
      1999.05.12 02:23
      이정욱 wrote: > 먼저 OnChange이벤트를 재정의를 하십시요. > 그리고 ChangeBySelf라는 변수를 Boolean...
    • 이정욱
      1999.05.11 20:23
      RxLib의 RichEDit2 콘트롤을 사용하는 방법이 있구요.. 또하나는 상용인 InfoPower에 포함되어있는 RichEd...
    • 아무게
    • 1999.05.11 18:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.11 20:26
      공유정보를 읽어오는것입니다. 김영대님의 팁에서 가져왔습니다. // 아래 예제는 Windows NT/Windows 20...
    • 김지건
    • 1999.05.11 18:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.11 20:16
      64k 이상을 넘지 못합니다. 그럴때는 RichEdit을 사용하시는것이 좋습니다. 아니면 상용으로나온 확장 Me...
    • 김지건
      1999.05.11 20:54
      이정욱 wrote: > 64k 이상을 넘지 못합니다. > 그럴때는 RichEdit을 사용하시는것이 좋습니다. > 아니면...