Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
영대님.. NT에서 네트워크에 연결된 컴퓨터 아는법
제목에 영대님을 지목해서 적은건 죄송합니다.
얼마전에도 질문을 했는데 아무도 대답을 안해주셔서..
영대님에게 질문을 합니다.
영대님이 올리신 네트워크에 연결된 컴퓨터명 알아내는 프로그램을
유용하게 사용하고 있습니다.
그 프로그램은 win98에서는 잘 동작을 하지만
Win NT 에서는
ServerName ='';
제대로 동작하지 않습니다.
NT에서 전체네트워크를 구하려면 어떻게 해야 하나요?
1
COMMENTS
김영대
•
1999.11.10 01:33
김종호 wrote:
> 제목에 영대님을 지목해서 적은건 죄송합니다.
> 얼마전에도 질문을 했는데 아무도 대답을 안해주셔서..
> 영대님에게 질문을 합니다.
>
> 영대님이 올리신 네트워크에 연결된 컴퓨터명 알아내는 프로그램을
> 유용하게 사용하고 있습니다.
> 그 프로그램은 win98에서는 잘 동작을 하지만
> Win NT 에서는
> ServerName ='';
> 제대로 동작하지 않습니다.
>
> NT에서 전체네트워크를 구하려면 어떻게 해야 하나요?
특정인을 지정하지 마세용~
부담됩니다
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.
이규학
•
1999.11.10 01:07
1
COMMENTS
/
0
LIKES
Telnet 한글처리문제??
이정욱
•
1999.11.10 21:00
음.. 밑의 컴포넌트를 제가 직접 사용해 보지는 않았지만 한글을 터미널상에서 처리할 때는 꼭 2바이트를 ...
김종호
•
•
1999.11.10 00:24
1
COMMENTS
/
1
LIKES
영대님.. NT에서 네트워크에 연결된 컴퓨터 아는법
제목에 영대님을 지목해서 적은건 죄송합니다. 얼마전에도 질문을 했는데 아무도 대답을 안해주셔서.. 영대님에게 질문을 합니다. 영대님이 올리신 네트워크에 연결된 컴퓨터명 알아내는 프로그램을 유용하게 사용하고 있습니다. 그 프로...
김영대
•
1999.11.10 01:33
김종호 wrote: > 제목에 영대님을 지목해서 적은건 죄송합니다. > 얼마전에도 질문을 했는데 아무도 대...
김윤상
1999.11.09 22:19
0
COMMENTS
/
0
LIKES
DirOutLine Compoment의 수정???
유희정
1999.11.09 21:40
0
COMMENTS
/
0
LIKES
시스템에서 제공하는 Exception처리된 DailogBox없애는 법
김종석
1999.11.09 21:37
0
COMMENTS
/
0
LIKES
현재 윈도우가 사용중인지 아닌지 알고 싶어요...
이영선
•
1999.11.09 21:26
1
COMMENTS
/
0
LIKES
퀵리포트에서 선그리기(긴급)
신 기종
•
1999.11.10 00:50
이영선 wrote: > 안녕하세요? > > 저는 지금 데이터 베이스 프로그래밍을 하고 있는데 > 보고서 출력...
윤철중
1999.11.09 21:22
0
COMMENTS
/
0
LIKES
InputQuery의 Font변경은...
정흥식
1999.11.09 20:36
0
COMMENTS
/
0
LIKES
119... 긴급사태 발생...
정순보
1999.11.09 19:22
0
COMMENTS
/
0
LIKES
socket 프로그램???? sendtext를 쓰는데 데이타가 안 가요...
김희준
•
1999.11.09 17:46
1
COMMENTS
/
0
LIKES
함수내의 지역변수를 TList에서 Add할 수 있나요?
강창석
•
1999.11.09 18:35
김희준 wrote: > 코드는 다음과 같습니다. > > ... > list : TList; > ... > > procedure a...
sunni
1999.11.09 06:57
0
COMMENTS
/
0
LIKES
엑티브폼을 이용한 HTML 페이지 호출
손주양
1999.11.09 06:50
0
COMMENTS
/
0
LIKES
DB사용 프로그램 배포시 InstallShelled를 사용하지 않고..
구스
1999.11.09 06:21
0
COMMENTS
/
0
LIKES
DLL에서!!! 생긴 문제!!!
김영진
•
1999.11.09 05:53
1
COMMENTS
/
0
LIKES
원하는 문자열 가져오기
김종호
•
1999.11.09 06:47
김영진 wrote: > 안녕하십니까. > 제가 이 함수를 예전에 본 것 같은데 어디서 본 건지 > 생각도 안나고...
termy
1999.11.09 05:13
0
COMMENTS
/
0
LIKES
INPUTQUERY함수의 폰트변경???
이정식
1999.11.09 04:02
0
COMMENTS
/
0
LIKES
요일표시
서영택
•
1999.11.09 03:47
1
COMMENTS
/
0
LIKES
[질문-매우급함]퀵레포트 문제
전철호
•
1999.11.09 06:22
function TFm_PreviewForm.PrintExecute(aRpt : TQuickRep; aPageCnt : integer) : Boolean; begin Resu...
김기환
1999.11.09 03:45
0
COMMENTS
/
0
LIKES
SQL Builder..를 사용할려면...?
김기환
•
1999.11.09 03:04
1
COMMENTS
/
0
LIKES
문자열처리 함수에 관한 질문입니다.
전철호
•
1999.11.09 06:17
http://www.osungcomp.pe.kr에 가시면 문자열 조작 함수들이 있습니다. FreeProcedure,FreeComponent란을 ...
추덕호
•
1999.11.09 03:06
1
COMMENTS
/
0
LIKES
(질문)비베에서 사용하던 ocx를 델파이에서..............
TeamX
•
1999.11.09 03:25
제가 해보진 않았지만 아래처럼 하면 되지 않을까요?. 1.커맨드라인에서 "regsvr32 그ocx.ocx" 로 레지...
김종호
1999/11/10 00:24
Views
672
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 제목에 영대님을 지목해서 적은건 죄송합니다.
> 얼마전에도 질문을 했는데 아무도 대답을 안해주셔서..
> 영대님에게 질문을 합니다.
>
> 영대님이 올리신 네트워크에 연결된 컴퓨터명 알아내는 프로그램을
> 유용하게 사용하고 있습니다.
> 그 프로그램은 win98에서는 잘 동작을 하지만
> Win NT 에서는
> ServerName ='';
> 제대로 동작하지 않습니다.
>
> NT에서 전체네트워크를 구하려면 어떻게 해야 하나요?
특정인을 지정하지 마세용~
부담됩니다
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.