delphi - Saml alle aktive vinduesklassenavne

Indlæg af Hanne Mølgaard Plasc

Problem



Mange programmer (True Transparancy og andre) kan få alle aktive eller kører i baggrundsvindue klassenavne som denne:


Delphi 7 Object Inspector navn er tpropertyinspector


Opera hovedvindue klassenavn er operawindowclass

etc.


Så hvordan får man åbnet vinduesklassenavn i Delphi?

Bedste reference


Ring EnumWindows for at få alle de øverste niveau vinduer. Ring derefter GetClassName for at finde ud af vinduesklassenavnet for hvert vindue. Hvis du også ønsker at sonde barnevinduer, skal du ringe EnumChildWindows på hvert øverste niveau vindue.


Ring til GetClassName som denne:


var
  ClassName: string;
  len: Integer;
...
SetLength(ClassName, 256);
len := GetClassName(window, PChar(ClassName), Length(ClassName));
if len=0 then
  RaiseLastOSError;
SetLength(ClassName, len);

Andre referencer 1


Brug simpelthen funktionen GetClassName i Windows API (samme måde i Delphi som på ethvert sprog). [8]