So, hat sich erledigt, hier das Ergebnis:
Wichtige Interfaces:
DiskQuotaControl
DIDiskQuotaUser
Zu bekommen über:
- Projekt... -> Typbibliothek importieren -> "DiskQuotaTypeLibrary (Version 1.0)" -> Installieren...
- Wenn "DiskQuotaTypeLibrary (Version 1.0)" nicht vorhanden ist, dann einfach die "dskquota.dll" über "Hinzufügen..." wählen.
Test:
- TDiskQuotaControl, ein Button und drei Labels benötigt
Delphi-Quellcode:
// DiskQuotaControl from dskquota.dll
procedure TForm1.Button1Click(Sender: TObject);
var
objUser: DIDiskQuotaUser;
QuotaLimit,
QuotaUsed: Extended;
PercentageQuotaUsed: Integer;
VolumeName: WideString;
const
domain = 'mydomain';
username = 'AUser';
begin
// Remote
//VolumeName := '\\server\c$\';
// Local
VolumeName := 'C:\';
DiskQuotaControl1.Initialize(VolumeName, true);
objUser := DiskQuotaControl1.FindUser(domain + '\' + username);
// Kontingent des Benutzer abfragen (in MB umgerechnet)
QuotaLimit := objUser.QuotaLimit / 1048576;
QuotaUsed := objUser.QuotaUsed / 1048576;
If objUser.QuotaLimit > 0 then
PercentageQuotaUsed := Round(100*(objUser.QuotaUsed / objUser.QuotaLimit ))
else
PercentageQuotaUsed := 0;
Label1.Caption := FloatToStr(QuotaLimit) + ' (' + FloatToStr(objUser.QuotaLimit) + ')';
Label2.Caption := FloatToStr(QuotaUsed) + ' (' + FloatToStr(objUser.QuotaUsed ) + ')';
Label3.Caption := IntToStr(PercentageQuotaUsed) + '%';
// Setzt das Kontingent des Benutzer
//objUser.QuotaLimit := 50 * 1048576;
end;
EDIT:
Und hier noch was schönes zu Active Directory:
Active Directory in Delphi