Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
컴퓨터의 공유 폴더
원격지 컴퓨터의 공유 폴더를 List 하는 방법은?
1
COMMENTS
이정욱
•
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 하는 방법은?
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
현동식
•
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
Midas 관련 질문
조준형
•
1999.05.21 23:52
김명호 wrote: > Delphi 3.0에서 Midas관련해서 Test를 하려고 간단한 Program을 만들었는데 > Client에...
왕초보
•
1999.05.12 17:32
1
COMMENTS
/
0
LIKES
[긴급] 동적으로 생성한 폼의 object참조방법?
이정욱
•
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
실행중인 Process의 핸들 얻기?
김영대
•
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
BDE 배포시에 문제가 있는데요
하윤철
•
1999.05.12 17:20
chos wrote: > 델파이 4로 작성한 프로그램을 인스톨쉴드로 배포했는데 인스톨되는 컴퓨터의 > > ...
땡글이
•
1999.05.12 00:44
2
COMMENTS
/
0
LIKES
또 TreeView....*^^*
김영대
•
1999.05.12 02:01
땡글이 wrote: > 실력은 엄꼬 궁금한것만 많은 왕초봅니다.... > 어제 올려주신 Q&A를 나름대로 봤는데요...
안치봉
•
1999.05.12 01:57
땡글이 wrote: > 실력은 엄꼬 궁금한것만 많은 왕초봅니다.... > 어제 올려주신 Q&A를 나름대로 봤는데요...
이호선
1999.05.12 00:26
0
COMMENTS
/
0
LIKES
메일관련 콤퍼넌트 부탁드립니다.
이호선
•
1999.05.12 00:20
2
COMMENTS
/
0
LIKES
Image의 Resizing에 대하여..
이정욱
•
1999.05.12 02:00
치봉님께서 답변을 해주셨지만 조금 더 가닥을 잡기위해.. ^^; 일단 TBitmap을 생성하세요. 그리고 이미...
안치봉
•
1999.05.12 01:50
이호선 wrote: > 안녕하세요. > 이미지를 이미지 콤퍼넌트를 이용하지 않고 지정된 화일만을 가지고 > ...
이지훈
•
1999.05.11 23:21
1
COMMENTS
/
0
LIKES
BDE Native Driver를 이용한 오라클 접속...?
신인재
•
1999.05.12 02:29
오라클을 접속하기 위해서는 sql-net인가 오라클에서 배포하는 네트웍 모듈이 있습니다. 이것을 깔아 주...
왕초보
•
1999.05.11 22:02
2
COMMENTS
/
0
LIKES
[도움요청]Access violation error
안치봉
•
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 18:58
1
COMMENTS
/
0
LIKES
텍스트 입력 컴포넌트? 좋은 것 추천 좀...
이정욱
•
1999.05.11 20:23
RxLib의 RichEDit2 콘트롤을 사용하는 방법이 있구요.. 또하나는 상용인 InfoPower에 포함되어있는 RichEd...
아무게
•
1999.05.11 18:49
1
COMMENTS
/
0
LIKES
컴퓨터의 공유 폴더
원격지 컴퓨터의 공유 폴더를 List 하는 방법은?
이정욱
•
1999.05.11 20:26
공유정보를 읽어오는것입니다. 김영대님의 팁에서 가져왔습니다. // 아래 예제는 Windows NT/Windows 20...
summe
1999.05.11 18:19
0
COMMENTS
/
0
LIKES
인스톨 실드를 만드는데 MSSql7.0 연결방법
김지건
•
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을 사용하시는것이 좋습니다. > 아니면...
Heaven
1999.05.11 13:09
0
COMMENTS
/
0
LIKES
쿼리컴포넌트 사용시 DBGrid의 데이타 입력
아무게
1999/05/11 18:49
Views
307
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
// 아래 예제는 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 하는 방법은?