{"id":768,"date":"2008-05-26T09:12:12","date_gmt":"2008-05-26T09:12:12","guid":{"rendered":"http:\/\/6teen.ru\/?p=732"},"modified":"2008-05-26T09:12:12","modified_gmt":"2008-05-26T09:12:12","slug":"8364","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=768","title":{"rendered":"\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438"},"content":{"rendered":"<p>\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438\n\nby delphibase.endimus.com\n\u0410\u0432\u0442\u043e\u0440:       Mirag, wwwMirage@yandex.ru, Mirag\nCopyright:   Mirag\n\u0414\u0430\u0442\u0430:        14 \u043d\u043e\u044f\u0431\u0440\u044f 2002 \u0433.\n\nunit Net;\n\ninterface\n\nuses\n  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,\n  ComCtrls, StdCtrls, Buttons, ImgList, ExtCtrls;\n\ntype\n  TNetForm = class(TForm)\n    ListView1: TListView;\n    ImageList1: TImageList;\n    Button1: TButton;\n    Edit1: TEdit;\n    Timer: TTimer;\n    Label1: TLabel;\n    Button2: TButton;\n    { procedure FormShow(Sender: TObject);}\n    procedure BitBtn2Click(Sender: TObject);\n    procedure BitBtn1Click(Sender: TObject);\n    procedure Button1Click(Sender: TObject);\n    procedure Button2Click(Sender: TObject);\n    procedure TimerTimer(Sender: TObject);\n    procedure FormCreate(Sender: TObject);\n\n  private\n    { Private declarations }\n  public\n    { Public declarations }\n    function FillNetLevel(xxx: PNetResource; list: TListItems): Word;\n    function GetComputer: string;\n  end;\n\nvar\n  NetForm: TNetForm;\n  name_server: integer;\nimplementation\nuses main, Info, Network_connect;\n{$R *.DFM}\n\nfunction TNetForm.FillNetLevel(xxx: PNetResource; List: TListItems): Word;\ntype\n  PNRArr = ^TNRArr;\n  TNRArr = array[0..59] of TNetResource;\nvar\n  x: PNRArr;\n  tnr: TNetResource;\n  I: integer;\n  EntrReq,\n    SizeReq,\n    twx: THandle;\n  WSName: string;\n  LI: TListItem;\nbegin\nResult := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,\n    RESOURCEUSAGE_CONTAINER, xxx, twx);\n  if Result = ERROR_NO_NETWORK then\n    Exit;\n  if Result = NO_ERROR then\n  begin\n    New(x);\n    EntrReq := 1;\n    SizeReq := SizeOf(TNetResource) * 59;\n    while (twx <> 0) and\n      (WNetEnumResource(twx, EntrReq, x, SizeReq) <> ERROR_NO_MORE_ITEMS) do\n    begin\n      for i := 0 to EntrReq - 1 do\n      begin\n        Move(x^[i], tnr, SizeOf(tnr));\n        case tnr.dwDisplayType of\n          RESOURCEDISPLAYTYPE_SERVER:\n            begin\n              if tnr.lpRemoteName <> '' then\n                WSName := tnr.lpRemoteName\n              else\n                WSName := tnr.lpComment;\n              LI := list.Add;\n              LI.Caption := copy(WSName, 3, length(WSName) - 2);\n              \/\/list.Add(WSName);\n            end;\n        else\n          FillNetLevel(@tnr, list);\n        end;\n      end;\n    end;\n    \/\/Dispose(x);\n    WNetCloseEnum(twx);\n  end;\nend;\n\n{procedure TNetForm.FormShow(Sender: TObject);\nbegin\n  ListView1.Items.Clear;\n  FillNetLevel(nil,ListView1.Items);\nend;}\n\nfunction TNetForm.GetComputer: string;\nbegin\n  result := '';\n  if (ShowModal = mrok) and (ListView1.Selected <> nil) then\n    result := ListView1.Selected.Caption;\nend;\n\nprocedure TNetForm.BitBtn2Click(Sender: TObject);\nbegin\n  ModalResult := mrcancel;\nend;\n\nprocedure TNetForm.BitBtn1Click(Sender: TObject);\nbegin\n  modalresult := mrok;\nend;\n\nprocedure TNetForm.Button1Click(Sender: TObject);\nvar\n  i: integer;\n  j: integer;\n  name, k: string;\nbegin\n  try\n    ListView1.Items.Clear;\n    FillNetLevel(nil, ListView1.Items);\n    i := ListView1.Items.Count;\n    edit1.Text := IntToStr(i);\n    i := ListView1.Items.Count;\n    edit1.Text := IntToStr(i);\n    \/\/i:=0;\n    if i = 0 then\n    begin\n      Messagebox(0, '\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043d\u0438 \u043e\u0434\u0438\u043d \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441!' + #13#10+\n       '\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0432\u0430\u0448\u0430 \u0441\u0435\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u0430!' + #13#10+\n       '\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440.', '\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435!', MB_OK);\n      Main_form.Edit1.Text := 'FALSE';\n    end;\n    if i > 0 then\n    begin\n      Messagebox(0, '\u041d\u0430\u0439\u0434\u0435\u043d\u044b \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b!' + #13#10+'\u0412\u0430\u0448\u0430 \u0441\u0435\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u0430!',\n        '\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435!', MB_OK);\n      Main_form.Edit1.Text := 'TRUE';\n    end;\n    button1.Enabled := false;\n  except\n    messagebox(0, '\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443', '\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435', MB_OK);\n  end;\n\nend;\n\nprocedure TNetForm.Button2Click(Sender: TObject);\nbegin\n  close;\nend;\n\nprocedure TNetForm.TimerTimer(Sender: TObject);\nbegin\n  if ListView1.Items.Count = 0 then\n    close;\nend;\n\nprocedure TNetForm.FormCreate(Sender: TObject);\nbegin\n  button1.Enabled := true;\nend;\n\nend.\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[448,457],"tags":[1387,1412,1716,326],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/768"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=768"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/768\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=768"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}