Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
분류먼저 해주시길 부탁드립니다.
안녕하십니까?
저는 WinNT를 사용하고 있는데....
현재 네트워크로 연결이 된 전체 도메인을 알수는 없나요....
그럼 즐거운 하루되세요...
1
COMMENTS
김영대
•
2000.01.13 19:10
은종범 wrote:
> 안녕하십니까?
> 저는 WinNT를 사용하고 있는데....
> 현재 네트워크로 연결이 된 전체 도메인을 알수는 없나요....
> 그럼 즐거운 하루되세요...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure GetServerList(TV:TTreeView; Node:TTreeNode);
var
a: Integer;
ErrCode: Integer;
NetRes: array[0..1023] of TNetResource;
EnumHandle: THandle;
EnumEntries: DWord;
BufferSize: DWord;
s: string;
itm: TTreeNode;
begin
if not Node.HasChildren then
try
Screen.Cursor := crHourglass;
with NetRes[0] do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_generic;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpLocalName := NIL;
lpRemoteName := pChar(Tv.Selected.Text);
lpComment := NIL;
lpProvider := NIL;
end;
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
if ErrCode = NO_ERROR then
begin
EnumEntries := 1023;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
if ErrCode = No_Error then
with TV do
try
a:=0;
Items.BeginUpdate;
while a < enumEntries do
with NetRes[a] do
begin
s:=lowercase(lpRemoteName);
Delete(s,1,2);
itm := Items.AddChild(node,s);
itm.selectedIndex := 2;
itm.imageindex := 2;
inc(a);
end;
finally
Node.expand(false);
Items.EndUpdate;
end;
end;
finally
Screen.Cursor := crDefault;
WNetCloseEnum(EnumHandle);
end;
end;
procedure GetDomainList(TV: TTreeView);
var
a: Integer;
ErrCode: Integer;
NetRes: array[0..1023] of TNetResource;
EnumHandle: THandle;
EnumEntries: DWord;
BufferSize: DWord;
s: string;
itm: TTreeNode;
begin
try
with NetRes[0] do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpLocalName := NIL;
lpRemoteName := NIL;
lpComment := NIL;
lpProvider := NIL;
end;
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
if ErrCode = NO_ERROR then
begin
EnumEntries := 1;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
WNetCloseEnum(EnumHandle);
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
EnumEntries := 1024;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
if ErrCode = No_Error then
with TV do
try
a := 0;
Items.BeginUpDate;
Items.Clear;
Itm := Items.Add(TV.Selected, string(NetRes[0].lpProvider));
Itm.ImageIndex := 0;
Itm.SelectedIndex := 0;
while a < enumEntries do
with NetRes[a] do
begin
s := lpRemoteName;
Itm := Items.AddChild(Items[0], S);
Itm.ImageIndex := 1;
Itm.SelectedIndex := 1;
inc(a);
end;
finally
Items.EndUpdate;
end;
end;
finally
WNetCloseEnum(EnumHandle);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetDomainList(TreeView1);
end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected <> nil then
if TreeView1.Selected.level = 1 then
GetServerList(TreeView1, TreeView1.Selected);
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
여영식
2000.01.13 19:40
0
COMMENTS
/
0
LIKES
서수영씨 보세요...
송현경
2000.01.13 19:24
0
COMMENTS
/
0
LIKES
StringGrid에서 2Row를 1Row처럼 쓰려면..
델 초보자
2000.01.13 19:16
0
COMMENTS
/
0
LIKES
이렇게 도움을 또 청합니다.. ^^;;
초보왕
•
2000.01.13 19:12
1
COMMENTS
/
0
LIKES
에러메세지에대한궁금증
김영대
•
2000.01.13 19:14
초보왕 wrote: > 실행중에 EAccess Violation 이라는 메세지가 나오는데 > 원인 및 해결방법이 있으시면 ...
궁금이
•
2000.01.13 19:12
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
김영대
•
2000.01.13 19:17
궁금이 wrote: > 화면의 ListView에있는 일반 String값을 그대로 > QuickReport로 출력하려고합니다. > ...
박성훈
2000.01.13 19:08
0
COMMENTS
/
0
LIKES
QuickReport에서 조건에 따라 출력하기
은종범
•
2000.01.13 18:41
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
안녕하십니까? 저는 WinNT를 사용하고 있는데.... 현재 네트워크로 연결이 된 전체 도메인을 알수는 없나요.... 그럼 즐거운 하루되세요...
김영대
•
2000.01.13 19:10
은종범 wrote: > 안녕하십니까? > 저는 WinNT를 사용하고 있는데.... > 현재 네트워크로 연결이 된 전체...
강성준
•
2000.01.13 18:32
2
COMMENTS
/
0
LIKES
TwebBrowser 에서 Tab 키를 사용하려면 어떻게 합니까...?
전철호
•
2000.01.15 04:39
강성준 wrote: > 보통 익스프롤로에는 Tab를 누르면 링크나 . 텍스트필드나 버튼들을 > > 이동하는데 T...
전철호
•
2000.01.15 04:39
강성준 wrote: > 보통 익스프롤로에는 Tab를 누르면 링크나 . 텍스트필드나 버튼들을 > > 이동하는데 T...
브루스 리
2000.01.13 17:31
0
COMMENTS
/
0
LIKES
퀵레포트 패치후 컴포넌트가 안 올라 옵니다.
맨발의 청춘
2000.01.13 14:55
0
COMMENTS
/
0
LIKES
SQL 계산필드에 대해서...
초보자
2000.01.13 07:35
0
COMMENTS
/
0
LIKES
원격지에서 DB를 공유하려면?
화이트
2000.01.13 07:22
0
COMMENTS
/
0
LIKES
DBLookupCombo에서 코드명을 읽을려면 어떤 메소드로 읽어오는지,제발 가르쳐주세요.
sayfriend
2000.01.13 07:21
0
COMMENTS
/
0
LIKES
TreeView와 DB와의 연동
김한수
2000.01.13 07:18
0
COMMENTS
/
0
LIKES
OLE출력
유도삼
•
2000.01.13 06:14
1
COMMENTS
/
0
LIKES
이미지 파일의 사이즈(A4, B4...)
김영대
•
2000.01.13 19:13
유도삼 wrote: > Bmp나 Jpg파일의 사이즈를 A4, B4등의 크기로 지정하여 저장하고자 합니다. > 그런데 이...
최재원
•
2000.01.13 04:22
3
COMMENTS
/
0
LIKES
DBGrid에서 multi select 한것만 프린트???
구창민
•
2000.01.13 04:41
최재원 wrote: > 수고들 하십니다. > > 혹시 DBGrid에서 multi select 한 레코드들만 프린트 할 수 있...
최재원
•
2000.01.13 22:00
구창민 wrote: > 최재원 wrote: > > 수고들 하십니다. > > > > 혹시 DBGrid에서 multi select 한 레코...
구창민
•
2000.01.13 22:15
uses 에 DB 추가하셨나 확인해보세요. 참고로, TBookMark는 TPoint형입니다. 그럼 즐거운 프로그래밍 되...
김영애
•
2000.01.13 04:05
1
COMMENTS
/
0
LIKES
서버의 호스트이름을 알아낼수 있는 방법은요?
구창민
•
2000.01.13 04:49
김영애 wrote: > 프로그램 맨 처음 실행시 c:winnt (or c:window)에 ini파일을 생성합니다. > 그 다음으...
이곤섭
2000.01.13 04:03
0
COMMENTS
/
0
LIKES
updatesql중에서 수정과 삭제시에 update failed~~~
전기봉
•
2000.01.13 03:41
1
COMMENTS
/
0
LIKES
스트링 파싱
여영식
•
2000.01.13 03:52
문제가 약간 모호하군요. 'c:windowssystem가나다.txt' 문자로 파싱을 하게되면 c: windows system ...
표선우
2000.01.13 03:33
0
COMMENTS
/
0
LIKES
TImage에서 그리기 속도 향상하는 법좀...
은종범
2000/01/13 18:41
Views
222
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하십니까?
> 저는 WinNT를 사용하고 있는데....
> 현재 네트워크로 연결이 된 전체 도메인을 알수는 없나요....
> 그럼 즐거운 하루되세요...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure GetServerList(TV:TTreeView; Node:TTreeNode);
var
a: Integer;
ErrCode: Integer;
NetRes: array[0..1023] of TNetResource;
EnumHandle: THandle;
EnumEntries: DWord;
BufferSize: DWord;
s: string;
itm: TTreeNode;
begin
if not Node.HasChildren then
try
Screen.Cursor := crHourglass;
with NetRes[0] do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_generic;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpLocalName := NIL;
lpRemoteName := pChar(Tv.Selected.Text);
lpComment := NIL;
lpProvider := NIL;
end;
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
if ErrCode = NO_ERROR then
begin
EnumEntries := 1023;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
if ErrCode = No_Error then
with TV do
try
a:=0;
Items.BeginUpdate;
while a < enumEntries do
with NetRes[a] do
begin
s:=lowercase(lpRemoteName);
Delete(s,1,2);
itm := Items.AddChild(node,s);
itm.selectedIndex := 2;
itm.imageindex := 2;
inc(a);
end;
finally
Node.expand(false);
Items.EndUpdate;
end;
end;
finally
Screen.Cursor := crDefault;
WNetCloseEnum(EnumHandle);
end;
end;
procedure GetDomainList(TV: TTreeView);
var
a: Integer;
ErrCode: Integer;
NetRes: array[0..1023] of TNetResource;
EnumHandle: THandle;
EnumEntries: DWord;
BufferSize: DWord;
s: string;
itm: TTreeNode;
begin
try
with NetRes[0] do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpLocalName := NIL;
lpRemoteName := NIL;
lpComment := NIL;
lpProvider := NIL;
end;
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
if ErrCode = NO_ERROR then
begin
EnumEntries := 1;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
WNetCloseEnum(EnumHandle);
ErrCode := WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
EnumEntries := 1024;
BufferSize := SizeOf(NetRes);
ErrCode := WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
if ErrCode = No_Error then
with TV do
try
a := 0;
Items.BeginUpDate;
Items.Clear;
Itm := Items.Add(TV.Selected, string(NetRes[0].lpProvider));
Itm.ImageIndex := 0;
Itm.SelectedIndex := 0;
while a < enumEntries do
with NetRes[a] do
begin
s := lpRemoteName;
Itm := Items.AddChild(Items[0], S);
Itm.ImageIndex := 1;
Itm.SelectedIndex := 1;
inc(a);
end;
finally
Items.EndUpdate;
end;
end;
finally
WNetCloseEnum(EnumHandle);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetDomainList(TreeView1);
end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected <> nil then
if TreeView1.Selected.level = 1 then
GetServerList(TreeView1, TreeView1.Selected);
end;
end.