API aracılığıyla aktif pencerenin başlığını öğrenmek için kullanılabilecek VBA kodu alternatifidir.
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal hwnd As Long) 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 Declare Function GetParent Lib "user32" _
(ByVal hwnd As Long) As Long
'--------------------------------------------------
'AktifPencereBasliginiAl
'--------------------------------------------------
Private Function AktifPencereBasliginiAl(ByVal ReturnParent As Boolean) As String
Dim i As Long
Dim j As Long
i = GetForegroundWindow
If ReturnParent Then
Do While i <> 0
j = i
i = GetParent(i)
Loop
i = j
End If
AktifPencereBasliginiAl = PencereBasliginiAl(i)
End Function
'--------------------------------------------------
'PencereBasliginiAl
'--------------------------------------------------
Private Function PencereBasliginiAl(ByVal hwnd As Long) As String
Dim l As Long
Dim s As String
l = GetWindowTextLength(hwnd)
s = Space(l + 1)
GetWindowText hwnd, s, l + 1
PencereBasliginiAl = Left$(s, l)
End Function
'--------------------------------------------------
'Kullanim
'--------------------------------------------------
Sub Kullanim()
MsgBox AktifPencereBasliginiAl(True)
End Sub