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.06.28 02:47
0
COMMENTS
/
0
LIKES
인스톨쉴드에서 프로그램크기 줄이기...
박성훈
•
1999.06.28 02:44
1
COMMENTS
/
0
LIKES
윈도우API 어떻게 공부해야 하나요?`
이정욱
•
1999.06.28 12:15
불행히도 API를 델파이로 다룬 서적은 아직가지는 없습니다. 미래에는 생기기를 기원하지만... 쩝.. 일단 ...
엠마
•
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.28 01:23
1
COMMENTS
/
0
LIKES
[재질문] 비베-->델파이...
이정욱
•
1999.06.28 12:20
쩝.. 비베는 잘 모르지만.... 옛날 베이직을 참고삼아서.. 흐.. var ActiveLonMarkObject : TLcaLon...
김영해
•
1999.04.18 04:00
4
COMMENTS
/
0
LIKES
[긴급]EaccessViolastion 좀 잡아주세요!!
박주필
•
1999.06.27 23:17
네트워크에서 원하는 IP 주소로 PING을 하는 프로그램을 만들고 싶습니다.... 어떤 콤퍼넌트를 어디에 ...
이정욱
•
1999.04.18 22:34
vcl40.bpl을 패키지에 포함을 하면서 다른 패키지와 충돌이 있는것 같습니다. 패키지를 만드실때 사용하지...
조민경
•
1999.06.28 21:44
박주필 께서 말씀하시기를... > 네트워크에서 원하는 IP 주소로 PING을 하는 프로그램을 만들고 싶습니다....
안치봉
•
1999.04.18 10:10
김영해 wrote: > 회사에서 어플리케션을 개발하는 중에 있습니다. > 그런데 이전까지 멀쩡하던 프로젝트...
장영선
•
1999.04.17 22:41
5
COMMENTS
/
0
LIKES
DBCheckbox를 이용하여 검색하는 예제...
최도석
•
1999.06.27 22:24
dbgrid에서 필드이동이 아닌 행이동(스크롤바, 마우스, 키보드포함)이 발생하면 그 레코드의 필드내용에 ...
구창민
•
1999.04.18 02:37
장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
이훈신
•
1999.06.29 12:43
최도석 께서 말씀하시기를... > dbgrid에서 필드이동이 아닌 행이동(스크롤바, 마우스, 키보드포함)이 >...
신인재
•
1999.04.18 02:33
장영선 wrote: > 안녕하세요. > DBCheckbox를 사용하여 검색프로그램을 한번도 작성해 보지 않아서.... ...
박성훈
•
1999.06.28 03:08
전문가가 아니라서 죄송하지만, 레코드이동에 따른 이벤트는 테이블 컴포넌트의 scroll이벤트가 아닌가요?...
무명인
•
1999.06.27 11:04
1
COMMENTS
/
0
LIKES
FTP(LAN)
김영대
•
1999.06.27 23:43
무명인 께서 말씀하시기를... > > 집(전화접속연결)에서는 파일을 주고, 받기(pc가 1대뿐인 관계로 집...
장영선
•
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.06.27 07:30
0
COMMENTS
/
0
LIKES
한글 mail을 받게 할 수 없나요?
장일형
1999.06.27 02:40
0
COMMENTS
/
0
LIKES
워드제어 방법 좀...
장철진
•
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.06.27 01:50
0
COMMENTS
/
0
LIKES
excel 한번 실행후 계속해서 sheet 에 추가하는 방법 ???
김재현
•
1999.04.12 23:22
1
COMMENTS
/
0
LIKES
TDatabase 여러개 사용 법
배리스
•
1999.04.18 02:04
김재현 wrote: > 델파이로 CGI 프로그래밍을 하고 있습니다. > ISAPI 방식이 아닌 Standard-alone(EXE 방...
홍희석
•
1999.06.27 01:23
2
COMMENTS
/
0
LIKES
EditBox에서 숫자를 우측으로 편집하는 방법좀 알려줘요..
이정욱
•
1999.06.28 12:27
한델의 (www.delphi.co.kr)에 가셔서 한델강의실에 가시면 '컴포넌트 넌! 이제 끝이야! (#1)'를 보세요. ...
홍희석
•
1999.06.28 22:44
이정욱 께서 말씀하시기를... > 한델의 (www.delphi.co.kr)에 가셔서 한델강의실에 가시면 '컴포넌트 넌! ...
장영선
•
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.06.27 01:21
1
COMMENTS
/
0
LIKES
Windows NT에서....
이정욱
•
1999.06.28 12:28
아마도 설치가 제데로 되지 않은것 같습니다. BDE를 포함하여 재 설치를 해보세요. NT에서도 델파이는 잘...
문승진
•
1999.06.27 01:15
3
COMMENTS
/
0
LIKES
메모리에 로드된 이미지가 어떻게 처리되는지요
손창근
•
1999.04.17 19:17
안녕하세요. 오공이 입니다. 다름이 아니라 제가 네트웍쪽을 잘 몰라서 그러는데 통신프로그램을 보면...
이정욱
•
1999.06.28 12:30
Image.Picture.Bitmap.Assign(nil); 해보세요. 문승진 께서 말씀하시기를... > TImage 에서 LoadFrom...
이정욱
•
1999.04.17 21:46
그것은 자동으로 지원할텐데요... 컴퓨터에 전화접속 네트워킹이 설치되어 있고, 연결이 안되어있을때 네...
이호선
•
1999.04.17 20:16
2
COMMENTS
/
0
LIKES
THTML 컴포넌트에 대하여...
문영진
•
1999.06.26 23:03
도움을 청합니다. 도저히 풀리지가 않는군요. Byte형 Array 변수가 있는데 여기서 64비트를 잘라내어서 ...
이정욱
•
1999.04.18 09:43
쩝.. 제능력으로는 안되는군요..... 해보려고 했지만.. 후... 누군가 ActiveX를 무지 잘하는 사람은 가능...
정재홍
1999.06.26 22:40
0
COMMENTS
/
0
LIKES
퀵레포트를 dll로...
초보
•
1999.06.26 21:49
1
COMMENTS
/
0
LIKES
[긴급] List index out of bounds(7)뭐예요
안치봉
•
1999.06.26 22:42
초보 께서 말씀하시기를... > 쿼리를 해서 텍스트 파일을 생성하던 중에 List index out of bounds(7)에...
장철진
1999/04/17 08:55
Views
231
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.