Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

Nomadic советует:

Вот пример:

type

 PNetResourceArray = ^TNetResourceArray;

 TNetResourceArray = array[0..MaxInt div SizeOf(TNetResource) - 1] of TNetResource;

Procedure EnumResources(LpNR:PNetResource);

Var

 NetHandle: THandle;

 BufSize: Integer;

 Size: Integer;

 NetResources: PNetResourceArray;

 Count: Integer;

 NetResult:Integer;

 I: Integer;

 NewItem:TListItem;

Begin

 If WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,

// RESOURCETYPE_ANY -
все ресурсы

// RESOURCETYPE_DISK - диски

// RESOURCETYPE_PRINT - принтеры

0, LpNR, NetHandle) <> NO_ERROR then Exit;

 Try

BufSize := 50 * SizeOf(TNetResource);

GetMem(NetResources, BufSize);

Try

while True do begin

Count := -1;

Size := BufSize;

NetResult := WNetEnumResource(NetHandle, Count, NetResources, Size);

If NetResult = ERROR_MORE_DATA then begin

BufSize := Size;

ReallocMem(NetResources, BufSize);

Continue;

end;

if NetResult <> NO_ERROR then Exit;

For I := 0 to Count-1 do Begin

With NetResources^[I] do Begin

If RESOURCEUSAGE_CONTAINER = (DwUsage and RESOURCEUSAGE_CONTAINER) then

EnumResources(@NetResources^[I]);

If dwDisplayType = RESOURCEDISPLAYTYPE_SHARE Then

// ^^^^^^^^^^^^^^^^^^^^^^^^^ - ресурс

// RESOURCEDISPLAYTYPE_SERVER - компьютер

// RESOURCEDISPLAYTYPE_DOMAIN - рабочая группа

// RESOURCEDISPLAYTYPE_GENERIC - сеть

Begin

NewItem:= Form1.ListView1.Items.Add;

NewItem.Caption:=LpRemoteName;

End;

End;

End;

End;

finally

FreeMem(NetResources, BufSize);

end;

 finally

WNetCloseEnum(NetHandle);

 end;

End;

procedure TForm1.Button1Click(Sender: TObject);

Var OldCursor: TCursor;

begin

 OldCursor:= Screen.Cursor;

 Screen.Cursor:= crHourGlass;

 With ListView1.Items do Begin

BeginUpdate;

Clear;

EnumResource(nil);

EndUpdate;

 End;

 Screen.Cursor:= OldCursor;

end;
 

Реестр

Как

из программы выявить версию Windows, на кого зарегистрирована и т.п.?

Nomadic пишет:

Вот тебе кyсочек Windows Registry, pазбиpайся:

=== Cut here! [a.reg] === REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]

"InstallType"=hex:03,00

"SetupFlags"=hex:08,01,00,00

"DevicePath"="C:\\WINDOWS\\INF"

"ProductType"="9"

"RegisteredOwner"="Jacky Shikerya"

"RegisteredOrganization"="SigmaЩ Soft. Universal ltd.й"

"ProductId"="12095-OEM-0004226-12233"

"LicensingInfo"=""

"SubVersionNumber"=" B"

"InventoryPath"="C:\\WINDOWS\\SYSTEM\\PRODINV.DLL"

"ProgramFilesDir"="C:\\Program Files"

"CommonFilesDir"="C:\\Program Files\\Common Files"

"MediaPath"="C:\\WINDOWS\\media"

"ConfigPath"="C:\\WINDOWS\\config"

"SystemRoot"="C:\\WINDOWS"

"OldWinDir"=""

"ProductName"="Microsoft Windows 95"

"FirstInstallDateTime"=hex:81,73,b0,22

"Version"="Windows 95"

"VersionNumber"="4.00.1111"

"BootCount"="3"

"OtherDevicePath"="C:\\WINDOWS\\INF\\OTHER"

=== And cut Here!(or there?!) [a.reg] ===

В uses пpописываешь модуль Registry и дальше так:

var

 R:TRegistry;

Поделиться с друзьями: