/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste