AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Windows API / MS.NET Framework API Delphi Alle freigegebenen Ressourcen auflisten
Thema durchsuchen
Ansicht
Themen-Optionen

Alle freigegebenen Ressourcen auflisten

Ein Thema von CalganX · begonnen am 25. Sep 2004
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Alle freigegebenen Ressourcen auflisten

  Alt 25. Sep 2004, 23:23
Hi,
ich versuche gerade ein wenig mit der NetShare*-Funktionen der WinAPI herumzuspielen... Ich habe dazu ja auch schon einen längeren Dialog mit OregonGhost geführt, der mir bei der Lösung eines kleinen Problemes behilflich war.
Mit Hilfe der genannten Funktionen lassen sich die freigebenen Ressourcen relativ einfach verwalten. Ich möchte anhand eines kleinen Beispiels zeigen, wie man die Funktion NetShareEnum verwendet. Sie listet alle Freigaben auf.

Ich gehe davon aus, dass ihr schon eine ListView mit zwei Spalten hinzugefügt habt. Dann braucht ihr nur noch folgenden SourceCode verstehen und umsetzen.
Delphi-Quellcode:
{
Wer die JEDI-Übersetzungen der WinAPI-Header hat, braucht nur die Units JwaLM und JwaLMShare (gaaanz wichtig: beide!!!) einbinden.

Wer sie nicht hat, nimmt einfach diesen Ausschnitt daraus:
}

function NetShareEnum(servername: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD;
           entriesread, totalentries, resume_handle: LPDWORD): DWORD; stdcall;

const MAX_PREFERRED_LENGTH = DWORD(-1);

type
  _SHARE_INFO_502 = record
    shi502_netname: LMSTR;
    shi502_type: DWORD;
    shi502_remark: LMSTR;
    shi502_permissions: DWORD;
    shi502_max_uses: DWORD;
    shi502_current_uses: DWORD;
    shi502_path: LMSTR;
    shi502_passwd: LMSTR;
    shi502_reserved: DWORD;
    shi502_security_descriptor: PSECURITY_DESCRIPTOR;
  end;
  PSHARE_INFO_502 = ^_SHARE_INFO_502;

{
Und alles was jetzt kommt muss sowieso jeder machen. Erstmal brauchen wir einen kleinen array-Typen
}

  TShareInfo502Array = Array of _SHARE_INFO_502;
{
Und als nächstes nur schnell unsere kleine Funktion zum Auflisten der Freigaben.
frmMain ist unser Hauptformular, lvShares unsere ListView.
Der Parameter sServerName gibt an, auf welchem Rechner die Freigaben gesucht werden. Wenn nil übergeben wird, werden die lokalen Freigaben verwendet.
}


procedure ListSharedFolders(const sServerName: PWideChar);
var
  aShareBuffer: PSHARE_INFO_502;
  aWorkBuffer: TShareInfo502Array;
  dwEntriesRead: Cardinal;
  i: integer;
  lviNewItem: TListItem;
begin
  // ListView leeren, damit da nichts mehr drin steht
  frmMain.lvShares.Items.Clear;

  // Die Freigaben über die API laden
  NetShareEnum(sServerName, 502, PByte(aShareBuffer), MAX_PREFERRED_LENGTH,
    @dwEntriesRead, @dwEntriesRead, nil);
  // Jetzt den Buffer in ein Array laden, damit es einfer zu verwenden ist
  aWorkBuffer := TShareInfo502Array(aShareBuffer);
  // Freigaben zur ListView adden
  for i:=0 to dwEntriesRead - 1 do begin
    lviNewItem := frmMain.lvShares.Items.Add;
    // Freigabenname
    lviNewItem.Caption := aWorkBuffer[i].shi502_netname;
    // Pfad zur Freigabe auf den lokalen Datenträgern
    lviNewItem.SubItems.Add(aWorkBuffer[i].shi502_path);
    // Kommentare zur Freigabe
    lviNewItem.SubItems.Add(aWorkBuffer[i].shi502_remark);
  end;
end;
Das war's schon.

Weitere Informationen gibt es wie immer im [msdn:cb3a3a4ba5="NetShareEnum"]MSDN[/msdn:cb3a3a4ba5].

Chris

PS: Über Anregungen und Verbesserungsvorschläge würde ich mich freuen.
  Mit Zitat antworten Zitat
Antwort Antwort

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 04:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz