Postup:
Ve Windows lze "topmost" okna - tedy ty, co jsou zobrazeny "nahoře"
rozdělit do dvou kategorií. Totiž na okna, které jsou aktivní a uživatel s
nimi "komunikuje" pomocí např. klávesnice a jsou vytvářeny aktivním procesem
a ty, které jsou zobrazeny sice nahoře, ale aktuální proces je nevolal.
Následující dvě procedury Vám budou tyto případy demonstrovat:
Private Declare Function GetFgWindowAll Lib
"user32" _
Alias "GetForegroundWindow" () As Long
Private Declare Function GetFgWindowApp Lib "user32" _
Alias "GetActiveWindow" () As Long
'Tato funkce vrací ukazatel na
okno v popředí bez ohledu na proces, který okno vyvolal
Function GetForegroundWindowAll() As Long
GetForegroundWindowAll = GetFgWindowAll
End Function
'Tato funkce používá
GetActiveWindow API, která vrací ukazatel
'na "tompomost" okno vytvořené aktuálním procesem
'Návratová hodnota může být 0 v případě, že okno v popředí například
ztratilo focus
Function GetForegroundWindowApp() As Long
GetForegroundWindowApp = GetFgWindowApp
End Function |