|
ru.nethack- RU.NETHACK ------------------------------------------------------------------- From : DrHexer 2:5020/400 11 Oct 2001 11:04:57 To : Sergey Kostromin Subject : Re: Parole -------------------------------------------------------------------------------- Sergey Kostromin wrote: > Привет All !!! > > Проблема есть сеть 200 компов, основа 2000 Server, туча доменов. > чем подобрать пароль на доступ к ресурсам или как получить доступ? > Сижу в одном из доменов. > > С уважением, Сергей Костромин. Эта прога покажет все ресурсы твоей сети( включая все домены, воркгруппы и шары в этих доменах) Довольно долгая рекурсия. Она работает четко, проверено. Потом можешь список распечатать. А насчет доступа, это уж, ты сам смотри:). Hюансы, господа, это вам не форсмажор :))) unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TFormMain = class(TForm) TreeView: TTreeView; procedure FormCreate(Sender: TObject); private { Private declarations } procedure LoadNetResources; procedure EnumSubResources(Items: TTreeNodes; Node: TTreeNode; lpNetResource: PNetResource); public { Public declarations } end; var FormMain: TFormMain; implementation {$R *.DFM} procedure TFormMain.FormCreate(Sender: TObject); begin LoadNetResources; end; procedure TFormMain.LoadNetResources; begin with TreeView.Items do begin BeginUpdate; Clear; Add(nil, 'Вся сеть'); EnumSubResources(TreeView.Items, Item[0], nil); EndUpdate; end; end; procedure TFormMain.EnumSubResources(Items: TTreeNodes; Node: TTreeNode; lpNetResource: PNetResource); const MAX_RES = 16; type PResources = ^TResources; TResources = array[0..MAX_RES-1] of TNetResource; var hEnum: THandle; Count: Integer; Res: Integer; Resources: PResources; BufferSize: Integer; I: Integer; NewNode: TTreeNode; NewNodeName: String; begin // Открываем доступ к перечню сетевых ресурсов Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, lpNetResource, hEnum); if NO_ERROR <> Res then Exit; // Массив, в который читаются сетевые ресурсы BufferSize := SizeOf(TResources); GetMem(Resources, BufferSize); while True do begin // Загружаем перечень ресурсов в массив // Если возникла ошибка, значит, ресурсов больше нет --- покидаем цикл Count := MAX_RES; Res := WNetEnumResource(hEnum, Count, Resources, BufferSize); if (Res <> NO_ERROR) and (Res <> ERROR_MORE_DATA) then Break; // В противном случае копируем сетевые ресурсы в дерево for I := 0 to Count - 1 do begin // Добавляем дочерний узел if Assigned(Resources^[I].lpRemoteName) then NewNodeName := String(Resources^[I].lpRemoteName) else NewNodeName := String(Resources^[I].lpComment); NewNode := Items.AddChild(Node, NewNodeName); // Вызываем процедуру рекурсивно для заполнения этого узла, // если узел содержит подузлы if (Resources^[I].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then EnumSubResources(Items, NewNode, @(Resources^[I])); end; end; FreeMem(Resources); // Закрываем доступ WNetCloseEnum(hEnum); end; end. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.nethack/102313e504944.html, оценка из 5, голосов 10
|