Visual Basic - Como capturar el titulo de una ventana

Life is soft - evento anual de software empresarial
 
Vista:

Como capturar el titulo de una ventana

Publicado por Nestor (1 intervención) el 21/09/2007 20:09:28
Buenas Tardes a todos!

Necesito que me colaboren en como capturar el titulo de una ventana activa y guardarlo en un String, tengo un ejemplo que me la captura pero el tipo de dato es un numero o algo asi, lo que necesito es capturarla en un tipo de dato String. Si alguien me puede colaborar le agradeceria mucho ya que es para un proyecto que estoy realizando.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como capturar el titulo de una ventana

Publicado por Miguel Montecinos (3 intervenciones) el 10/10/2008 18:09:30
Te sugiero que abras un proyecto nuevo con un fom1, en el cual debes poner un timer, que se debe llamar Timer1, e introducir el siguiente codigo en el formulario.

Option Explicit

'Constantes
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40

' funciones Api
Private Declare Sub SetWindowPos Lib "user32" ( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long)

'Función que recupera el texto de la ventana
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, _
ByVal lpString As String, _
ByVal cch As Long) As Long

' Recupera el Hwnd de la ventana
Private Declare Function GetForegroundWindow Lib "user32" () As Long


Private Sub Form_Load()

Me.FontSize = 10
Timer1.Interval = 300
'Esto es para que quede el formulario OnTop
Call SetWindowPos(Me.hwnd, HWND_TOPMOST, _
0, 0, 500, 100, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
End Sub

Private Sub Timer1_Timer()

Dim hwnd_Ventana As Long
Dim Caption_Ventana As String
Dim length As Long

' Captura el Hwnd de la ventana activa
hwnd_Ventana = GetForegroundWindow()

'Crea un Buffer para el caption del title bar
Caption_Ventana = Space$(1024)

' Retorna la cantidad de caracteres
length = GetWindowText(hwnd_Ventana, Caption_Ventana, Len(Caption_Ventana))

' Obtiene solo el caption sin los espacios nulos de la cadena
Caption_Ventana = Left$(Caption_Ventana, length)
Me.Cls
'Imprime el caption de la ventana que tiene el foco en el _
formulario y el HWND
Me.Print "HWND: -> " & CStr(hwnd_Ventana)
Me.Print "Título: -> " & Caption_Ventana

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar