eshaghrahimy
پنج شنبه 06 مهر 1385, 12:55 عصر
یک برنامه کلاینت سرور داریم که هر دو در یکفرم قرار دارند میخاهیم با اجرای این برنامه در هر یک از کامپوتر های شبکه محلی نام تمام کامپوتر های دیگر را مشاهده کنیم
SoftDevCo
پنج شنبه 06 مهر 1385, 15:30 عصر
type
PNetResourceArray = ^TNetResourceArray;
TNetResourceArray = array[0..100] of TNetResource;
function CreateNetResourceList(ResourceType: DWord;
NetResource: PNetResource;
out Entries: DWord;
out List: PNetResourceArray): Boolean;
var
EnumHandle: THandle;
BufSize: DWord;
Res: DWord;
begin
Result := False;
List := Nil;
Entries := 0;
if WNetOpenEnum(RESOURCE_GLOBALNET,
ResourceType,
0,
NetResource,
EnumHandle) = NO_ERROR then begin
try
BufSize := $4000; // 16 kByte
GetMem(List, BufSize);
try
repeat
Entries := DWord(-1);
FillChar(List^, BufSize, 0);
Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
if Res = ERROR_MORE_DATA then
begin
ReAllocMem(List, BufSize);
end;
until Res <> ERROR_MORE_DATA;
Result := Res = NO_ERROR;
if not Result then
begin
FreeMem(List);
List := Nil;
Entries := 0;
end;
except
FreeMem(List);
raise;
end;
finally
WNetCloseEnum(EnumHandle);
end;
end;
end;
procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);
procedure ScanLevel(NetResource: PNetResource);
var
Entries: DWord;
NetResourceList: PNetResourceArray;
i: Integer;
begin
if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
for i := 0 to Integer(Entries) - 1 do
begin
if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
(NetResourceList[i].dwDisplayType = DisplayType) then begin
List.AddObject(NetResourceList[i].lpRemoteName,
Pointer(NetResourceList[i].dwDisplayType));
end;
if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
ScanLevel(@NetResourceList[i]);
end;
finally
FreeMem(NetResourceList);
end;
end;
begin
ScanLevel(Nil);
end;
eshaghrahimy
چهارشنبه 12 مهر 1385, 06:58 صبح
لطفا اگه میشه توضیح بیشتری بدین
SoftDevCo
شنبه 13 آبان 1385, 08:09 صبح
چه توضیحی ؟
amirsadeghi
شنبه 13 آبان 1385, 10:48 صبح
راجع به اینکه کامپوننتی می خواد یا نه
فایل اضافه می خواد یانه
DLL باید رجیستر بشه یا نه و ...........
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.