Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
공유는 어떻게.....
안녕하세요 또 질문을 하게 되네요.
LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 좀 가르켜 주세요...
(윈도우에서가 아니라 델파이에서 공유를 만드는 방법을 예기 하는 겁니다.)
아시는 분은 제발 좀알려주세요.....초보라서 상세하게.....
좋은 밤 되세요...
2
COMMENTS
김영대
•
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.
0
0
삭제
수정
댓글
구창민
•
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.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
한태진
•
1999.04.19 19:38
1
COMMENTS
/
0
LIKES
capslock,한/영키에대해서 도움을좀....
구창민
•
1999.04.20 00:12
한태진 wrote: > 안녕하세요 > 오랜간만에 오니 좀더 홈페이지가 멋지게 변화되었군요.. > 창민님의 노...
김장섭
•
1999.04.19 19:25
1
COMMENTS
/
0
LIKES
treeview정보를 파일로 저장...
안치봉
•
1999.04.19 19:41
김장섭 wrote: > 안녕하세요 > 트리뷰를 사용하고 있습니다. 트리뷰로 메뉴를 만드는데요(doubleClick하...
김현국
•
1999.04.19 17:15
6
COMMENTS
/
0
LIKES
WebBrowser Object의 Scroll Bar를 움직이려면
안치봉
•
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.19 08:42
1
COMMENTS
/
0
LIKES
퀵레포트에서 그룹별로 소계를 나타내려면...
하윤철
•
1999.04.22 02:04
빈센트 wrote: > 두개의 테이블을 연결해 쿼리한 후 그룹별로 소계를 내어 출력하려합니다. > 퀵 레포트...
김영해
•
1999.04.19 06:24
1
COMMENTS
/
0
LIKES
날짜표시타입 변경시처리
구창민
•
1999.04.19 06:40
김영해 wrote: > 안녕하세요 > 매번 이렇게 도움만 요청하려니 부끄럽군요.--; > 하지만 다시 용기를 내...
남윤혁
1999.04.19 05:01
0
COMMENTS
/
0
LIKES
미리보기 만들때 A4의 영역 표시...
채현우
•
1999.04.19 04:24
1
COMMENTS
/
0
LIKES
BDE 대체 엔진 추천 좀...
김영대
•
1999.04.19 04:43
채현우 wrote: > 안녕하세요. > 최대 2-3대 정도의 랜에 물려 사용할 DB어플을 만들려고 하는데요 > Par...
엠마
1999.04.19 02:15
0
COMMENTS
/
0
LIKES
INDEX화일 사용시 에러발생
김영해
•
1999.04.18 04:00
2
COMMENTS
/
0
LIKES
[긴급]EaccessViolastion 좀 잡아주세요!!
이정욱
•
1999.04.18 22:34
vcl40.bpl을 패키지에 포함을 하면서 다른 패키지와 충돌이 있는것 같습니다. 패키지를 만드실때 사용하지...
안치봉
•
1999.04.18 10:10
김영해 wrote: > 회사에서 어플리케션을 개발하는 중에 있습니다. > 그런데 이전까지 멀쩡하던 프로젝트...
장영선
•
1999.04.17 22:41
2
COMMENTS
/
0
LIKES
DBCheckbox를 이용하여 검색하는 예제...
구창민
•
1999.04.18 02:37
장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
신인재
•
1999.04.18 02:33
장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
이호선
•
1999.04.17 20:16
1
COMMENTS
/
0
LIKES
THTML 컴포넌트에 대하여...
이정욱
•
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
공유는 어떻게.....
안녕하세요 또 질문을 하게 되네요. LAN에서 NT4.0을 쓰고있는데 공유를 만드는 방법 좀 가르켜 주세요... (윈도우에서가 아니라 델파이에서 공유를 만드는 방법을 예기 하는 겁니다.) 아시는 분은 제발 좀알려주세요.....초보라서 상세하...
김영대
•
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
[긴급]date형을 폼에 나타낼때는......
김영해
•
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:53
0
COMMENTS
/
0
LIKES
[긴급]공유된 상대방 PC의 Password 설정 유무
박병영
•
1999.04.17 03:06
1
COMMENTS
/
0
LIKES
Db상태 Check
김영대
•
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로 입력해 테이블에...
장철진
1999/04/17 08:55
Views
146
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요 또 질문을 하게 되네요.
> 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.