AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Freigegebene Festplatten eines PCs ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Freigegebene Festplatten eines PCs ermitteln

Ein Thema von Salomon · begonnen am 6. Mai 2003 · letzter Beitrag vom 18. Jan 2021
 
Troelli

Registriert seit: 1. Mai 2003
15 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Freigegebene Festplatten eines PCs ermitteln

  Alt 24. Jun 2008, 15:19
Hallo erstmal
Ist schon länger her das diese Threat beschrieben wurde. Aber ich stehe jetzt vor dem Problem das ich meine Shares im Netzwerk abrufen möchte. Nach dem hier veröffentlichten Quellcode geht es auch teilweise bis zur stelle wo man einen anderen Rechner ansprechen will. Dann knallts.
Hat einer eine Idee worann es liegen kann?

Delphi-Quellcode:
unit Unit3;

interface
uses
  Windows, SysUtils, Classes ,Dialogs ;

const
  NERR_Success = 0;
  MAX_PREFERRED_LENGTH = DWORD(-1);

  type
    NET_API_STATUS = DWORD;
    SHARE_INFO_2 = record
    shi2_netname : PWideChar;
    shi2_type : DWORD;
    shi2_remark : PWideChar;
    shi2_permissions : DWORD;
    shi2_max_uses : DWORD;
    shi2_current_uses: DWORD;
    shi2_path : PWideChar;
    shi2_passwd : PWideChar;
  end;

  PSHARE_INFO_2 = ^SHARE_INFO_2;
  Procedure EnumNetwork (var EnumNetworkStringlist :TStringlist;Computername_or_IP:String);


  function NetShareEnum(ServerName : PWideChar;
                        Level : DWORD;
                        bufptr : Pointer;
                        PrefMaxLen : DWORD;
                        EntriesRead : PDWORD;
                        TotalEntries : PDWORD;
                        Resume_Handle: PDWORD):NET_API_STATUS;
                        stdcall; external 'NetAPI32.dllname 'NetShareEnum';
  function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS;
                        stdcall; external 'NetAPI32.dllname 'NetApiBufferFree';



implementation

Procedure EnumNetwork (var EnumNetworkStringlist :TStringlist;Computername_or_IP:String);
const
  MAX_PREFERRED_LENGTH = -1;
  NERR_SUCCESS = 0;
var
  ER : DWORD; // enries read
  TE : DWORD; // total entries
  ResHandle : DWORD;
  ShareInfo : PSHARE_INFO_2;
  p : pChar;
  fResult : NET_API_STATUS;
  i : Integer;
  share, path : string;
  myWideString : WideString;
  myWideCharPtr : PWideChar;
begin
  ResHandle := 0;
  fResult := NetShareEnum(nil, 2, @ShareInfo, DWORD(MAX_PREFERRED_LENGTH), @ER, @TE, @ResHandle);
  if(fResult <> NERR_SUCCESS)then
   Exit;
  p := Pointer(ShareInfo);
  for i := 0 to TE - 1 do
  begin
    share := WideCharToString(PSHARE_INFO_2(p)^.shi2_netname);
    path := WideCharToString(PSHARE_INFO_2(p)^.shi2_path);
    if path<>'then path:=', '+path;
    EnumNetworkStringlist.Add(share+path);
    p := p + SizeOf(SHARE_INFO_2);
  end;
  NetApiBufferFree(@ShareInfo);
end;
end.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Computerressourcen:TStringlist;
begin
Computerressourcen:=tstringlist.Create;
Computerressourcen.Add('Testobgeht');

EnumNetwork(Computerressourcen,'192.168.178.1');
ListBox1.Items:= Computerressourcen;
showmessage('fertig');
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz