Hallo alle,
ich möchte von einer Datei die Benútzerrechte erfahren und habe dazu auch ein kleines Beispiel aus dem
Entwickler Ausgabe 6/2003 seite 77 probiert.
Leider bringe ich das nicht zum laufen, folgende fehlermeldungen bekomme ich:
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'ISWbemServices'
[Fehler] Unit1.pas(39): Undefinierter Bezeichner: 'SWbemLocator1'
wer kann mir einen tipp geben damit mein Programm diese variablen kennt ?
Ich verwende D5, WIN2000.
danke für eure Hilfe
fredi.
Beispielcode:
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ShlObj,
ActiveX, shellapi;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
aSrv :ISWbemServices;
vObj :OleVariant;
iRet :Integer;
vObjDesc :OleVariant;
vDACL :Variant;
vDACLEnum :OleVariant;
vNVS :OleVariant;
iHigh, iLow, I:Integer;
begin
aSrv:=SWbemLocator1.ConnetServer('
','
','
','
','
','
',0,vNVS);
vObj:=aSrv.Get('
Win32_LogicalFileSecuritySetting="C:\trace.txt"',0,vNVS);
iRet:=vObj.GetSecurityDescription(vObjDesc);
If iRet <> 0
then
begin
showMessage(IntToStr(iRet));
EXIT;
end;
vDACL:=vObjDesc.DACL;
iHigh:=VarArrayHighBound(vDACL, 1);
iLow :=VarArrayLowBound(vDACL,1);
for i:=iLow
to iHigh
do
begin
ListBox1.Items.Add(vDACL[i].Trustee.
Name);
ListBox1.Items.Add(vDACL[i].AccessMask);
end;
end;
[edit=Luckie]Delphi-Tags eingefügt. Beim nächsten mal bitte selber machen. Danke Mfg, Luckie[/edit]