|
| Kald af Windows API Fra : Poul Otto Schousboe |
Dato : 04-11-01 17:36 |
|
Hej
Hvordan kalder jeg et Windows API fra Delphi?
Jeg har fundet følgende i Windows.pas:
function GetFileSecurityA(lpFileName: PAnsiChar; RequestedInformation:
SECURITY_INFORMATION;
pSecurityDescriptor: PSecurityDescriptor; nLength: DWORD; var
lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetFileSecurityA}
function GetFileSecurityW(lpFileName: PWideChar; RequestedInformation:
SECURITY_INFORMATION;
pSecurityDescriptor: PSecurityDescriptor; nLength: DWORD; var
lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetFileSecurityW}
function GetFileSecurity(lpFileName: PChar; RequestedInformation:
SECURITY_INFORMATION;
pSecurityDescriptor: PSecurityDescriptor; nLength: DWORD; var
lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetFileSecurity}
Jeg ønsker at liste FIL-Access listen på en WIndows NT-server.
venlig hilsen
Poul Otto
| |
Thomas Rose (04-11-2001)
| Kommentar Fra : Thomas Rose |
Dato : 04-11-01 18:15 |
|
Hej Poul,
Tag et kig på "GetFileSecurity" i Delphi's hjælp...
Cheers,
Thomas
| |
Poul Otto Schousboe (04-11-2001)
| Kommentar Fra : Poul Otto Schousboe |
Dato : 04-11-01 19:02 |
|
Hej
Jeg anvender Delphi 4.0, og finder ikke "GetFileSecurity" i Delphi's hjælp?
vh Poul Otto
"Thomas Rose" <trose@get2net.dk> skrev i en meddelelse
news:3be57774$0$57695$edfadb0f@dspool01.news.tele.dk...
> Hej Poul,
>
> Tag et kig på "GetFileSecurity" i Delphi's hjælp...
>
> Cheers,
> Thomas
>
>
| |
Thomas Rose (04-11-2001)
| Kommentar Fra : Thomas Rose |
Dato : 04-11-01 19:24 |
|
Hmm... måske er den ikke med i Delphi 4.0? Ellers kan du prøve at skrive
funktionsnavnet et sted i en unit, stille markøren "på" ordet og trykke
F1... API kald og lignende står ikke beskrevet i Delphi's normale hjælpe-fil
(men blandt "MS SDK" filerne).
Cheers,
Thomas
"Poul Otto Schousboe" <pos@telefona.dk> wrote in message
news:3be58294$0$13372$4d4eb98e@read.news.dk.uu.net...
> Hej
>
> Jeg anvender Delphi 4.0, og finder ikke "GetFileSecurity" i Delphi's
hjælp?
> vh Poul Otto
> "Thomas Rose" <trose@get2net.dk> skrev i en meddelelse
> news:3be57774$0$57695$edfadb0f@dspool01.news.tele.dk...
> > Hej Poul,
> >
> > Tag et kig på "GetFileSecurity" i Delphi's hjælp...
> >
> > Cheers,
> > Thomas
> >
> >
>
>
| |
Poul Otto Schousboe (04-11-2001)
| Kommentar Fra : Poul Otto Schousboe |
Dato : 04-11-01 19:42 |
|
Hej Thomas
Jeg har fundet den, men jeg er en novice, så jeg ved ikke hvordan jeg
foretager et kald til denne funktion i Delphi.
Har du mulighed for at lave et eksempel?
På forhånd tak.
vh Poul Otto
"Thomas Rose" <trose@get2net.dk> skrev i en meddelelse
news:3be58787$0$57661$edfadb0f@dspool01.news.tele.dk...
> Hmm... måske er den ikke med i Delphi 4.0? Ellers kan du prøve at skrive
> funktionsnavnet et sted i en unit, stille markøren "på" ordet og trykke
> F1... API kald og lignende står ikke beskrevet i Delphi's normale
hjælpe-fil
> (men blandt "MS SDK" filerne).
>
> Cheers,
> Thomas
>
> "Poul Otto Schousboe" <pos@telefona.dk> wrote in message
> news:3be58294$0$13372$4d4eb98e@read.news.dk.uu.net...
> > Hej
> >
> > Jeg anvender Delphi 4.0, og finder ikke "GetFileSecurity" i Delphi's
> hjælp?
> > vh Poul Otto
> > "Thomas Rose" <trose@get2net.dk> skrev i en meddelelse
> > news:3be57774$0$57695$edfadb0f@dspool01.news.tele.dk...
> > > Hej Poul,
> > >
> > > Tag et kig på "GetFileSecurity" i Delphi's hjælp...
> > >
> > > Cheers,
> > > Thomas
> > >
> > >
> >
> >
>
>
| |
Thomas Rose (05-11-2001)
| Kommentar Fra : Thomas Rose |
Dato : 05-11-01 19:54 |
|
Hej Poul,
"Poul Otto Schousboe" <pos@telefona.dk> wrote in message
news:3be58bfa$0$13371$4d4eb98e@read.news.dk.uu.net...
> Hej Thomas
>
> Jeg har fundet den, men jeg er en novice, så jeg ved ikke hvordan jeg
> foretager et kald til denne funktion i Delphi.
>
> Har du mulighed for at lave et eksempel?
tja, lige nu sidder jeg desværre ikke og koder på et system med NTFS, så jeg
har ikke gode muligheder for at teste mit eksempel i praksis (jeg får blot
at vide, at funktionen ikke er tilgængelig på mit system)...
Men, følgende viser princippet i et kald til GetFileSecurity:
var
SD : PSecurityDescriptor;
LengthNeeded : DWORD;
begin
GetMem(SD, 1024);
try
if GetFileSecurity('c:\windows\smartdrv.exe',
OWNER_SECURITY_INFORMATION,
SD, 1024, LengthNeeded) then
begin
ShowMessage('Success!');
end
else ShowMessage(SysErrorMessage(GetLastError));
finally
FreeMem(SD);
end;
Og bemærk den lidt specielle semantik omkring kaldet... Security
Descriptoren kan fylde mere end de 1024 bytes angives, og funktionen vil i
givet fald fejle hvor LengthNeeded variablen indeholder den påkrævede
størrelse i bytes.
Held og lykke,
og Cheers som altid,
Thomas
| |
|
|