Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] Aktiivisen ikkunan nimi?

Nesci [06.06.2006 21:50:52]

#

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

Meitsi [06.06.2006 22:38:17]

#

Win apilla GetForegroundWindow muistaakseni.

Antti Laaksonen [06.06.2006 22:40:13]

#

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 Sub

Nesci [06.06.2006 22:42:19]

#

Noniin, tuo onkin paremmin ymmärrettävissä :) Kiitos paljon !

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta