Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Sicherheitseinstellungen von Dateien ändern

  Alt 14. Aug 2003, 11:18
Hi,

beim rumtesten mit CreateFile bin ich auf die API-Methode GetFileSecurity gestoßen. Da kann man sich CreateFile offensichtlich spaaren.

GetSecurityInfo hat mein Compiler aber nicht gefunden. Ich nutze D5 und arbeite auf Win2000.

GetSecurityInfo ist auch eine reine NT-Methode!

Da ich den Code jetzt auch mal ausprobiert habe gebe ich die hier gleich mal die Korrektur. Da waren einige Flüchtigkeitsfehler drin.

Delphi-Quellcode:

  private
    { Private-Deklarationen }
    FFiH : THandle;

Function TForm1.OpenFileSecure: Boolean;
var FiName : String;
    SecAtr : Security_Attributes;
    SD : SECURITY_DESCRIPTOR;
begin
  Result := False;
  // Dateiname mit komlettem Pfad
  FiName := Edit1.Text + #0;
  If Length(FiName) = 0 then Exit;
  // Security_Attributes - Struktur füllen
  Fillchar(SecAtr, Sizeof(Security_Attributes), 0);
  secAtr.bInheritHandle := True;
  secAtr.nLength := Sizeof(SecAtr);
  // Handle hilen
  FFiH := CreateFile( @FiName[1],
         GENERIC_READ or GENERIC_WRITE,
         FILE_SHARE_WRITE,
         @secAtr,
         OPEN_EXISTING,
         FILE_ATTRIBUTE_NORMAL,
         0);
  // Handle prüfen
  If (FFiH = 0) or (GetLastError <> Error_Success) then Exit;
  ChangeItems(FFiH);
  // und jetzt SetSecurityInfo
{  GetSecurityInfo(FFiH,
                  SE_FILE_OBJECT,
                  OWNER_SECURITY_INFORMATION,
                  nil,
                  nil,
                  nil,
                  nil,
                  nil);
}
  Result := True;
end;
Mal schaun wie wir so weiterkommen.
  Mit Zitat antworten Zitat