Kuinka saan selville ikkunan nimen joka on aktiivisena ? Eli ikkuna jolla on näppäimistön focusi. Esim. nyt kun kirjoitan tähän textareaan niin näppäimistön focus on mozilla:ssa jonka title on "ohjelmointiputka:Keskustelu..." jne. Eli tuo title juuri pitäisi saada tulostettua. Ja aina uudelleen tietysti kun focus muuttuu. Mahdollisimman epäselvästi varmaan selitetty mutta jos joku ymmärsi niin olisin erittäin kiitollinen avusta :)
Edit:
Noniin löysin sittenkin vaikka luulin etsineeni jo pitkään tuloksetta, laitan nyt tänne koodin jos joku sitä tarvii joskus.
Private CurrentApp_hWnd Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" _ (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32.dll" Alias _ "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long Function GetCaption(hwnd As Long) Dim hWndTitle As String hWndTitle = String(GetWindowTextLength(hwnd), 0) GetWindowText hwnd, hWndTitle, (GetWindowTextLength(hwnd) + 1) GetCaption = hWndTitle End Function Private Sub Timer1_Timer() If GetForegroundWindow <> CurrentApp_hWnd Then CurrentApp_hWnd = GetForegroundWindow If GetCaption(GetForegroundWindow) = "" Then Else: Text1 = Text1 & _ " [" & GetCaption(GetForegroundWindow) & "] - " End If End Sub
Win apilla GetForegroundWindow muistaakseni.
Tässä vielä vähän lyhyempi esimerkki:
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Sub Timer1_Timer()
Dim ikkuna As Long, nimi As String * 256
' haetaan ikkunan tunnus
ikkuna = GetForegroundWindow
' haetaan ikkunan teksti
GetWindowText ikkuna, nimi, 256
' näytetään teksti otsikkopalkissa
Caption = nimi
End SubNoniin, tuo onkin paremmin ymmärrettävissä :) Kiitos paljon !
Aihe on jo aika vanha, joten et voi enää vastata siihen.