Foros del Web » Programación para mayores de 30 ;) » .NET »

SetForegroundWindow sin necesidad de especificar parametros

Estas en el tema de SetForegroundWindow sin necesidad de especificar parametros en el foro de .NET en Foros del Web. Hola, he estado investigando la funcion de SetForegroundWindow y FindWindow solo que he visto que es necesario conocer el titulo de la ventana que se ...
  #1 (permalink)  
Antiguo 20/02/2013, 11:33
 
Fecha de Ingreso: febrero-2013
Mensajes: 14
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta SetForegroundWindow sin necesidad de especificar parametros

Hola, he estado investigando la funcion de SetForegroundWindow y FindWindow solo que he visto que es necesario conocer el titulo de la ventana que se quiere activar.

Estoy desarrollando un teclado para mis practicas profesionales de la Universidad, lo intente realizar en JAVA pero el cambio de ventana es casi imposible o mas bien no lo encontre por lo tanto cambie a vb.net porque encontre estas funciones, de echo me esta quedando un poco mejor que en java solo que tengo 2 dias utilizando vb.net y la verdad no entiendo algunas cosas todavia...


He aqui el codigo:

Código vb:
Ver original
  1. 'importamos el user32.dll para utilizar FindWindow
  2.    'Esta funcion sirve para encontrar la ventana deseada
  3.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  4.     Private Shared Function FindWindow( _
  5.        ByVal lpClassName As String, _
  6.        ByVal lpWindowName As String) As IntPtr
  7.     End Function
  8.  
  9.     'Los parametros en FindWindow son los que manejaran la ventana, la clase de
  10.    'aplicacion y el nombre de la ventana
  11.  
  12.     'importamos user32.dll para usar setforeground window
  13.    'funcion para poner ventana activa
  14.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  15.     Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Long
  16.     End Function
  17.  
  18.     Dim ParenthWnd As New IntPtr(0)
  19.    
  20.     'Metodo para cambiar ventana
  21.    Public Sub cambioventana(ByVal title As String)
  22.  
  23.  
  24.         'Busca la ventana, los valores deben ser la aplicacion y el titulo de la aplicacion
  25.        'Es aqui mi problema, no siempre sera notepad y no siempre tendra ese titulo...
  26.        '                       ||||||||||||||||||||||||||||||||||||||
  27.        ParenthWnd = FindWindow("Notepad", "Sin título: Bloc de notas")
  28.  
  29.         If ParenthWnd.Equals(IntPtr.Zero) Then
  30.             MessageBox.Show("No se encontro la ventana")
  31.         Else
  32.             ' La ha encontrado y la pone en primer plano
  33.            SetForegroundWindow(ParenthWnd)
  34.         End If
  35.     End Sub

Quiero saber si se puede evitar tener que poner el nombre de la aplicacion y el titulo de ventana, o mas bien como poner la ultima ventana utilizada.


Si alguien puede ayudarme lo agradeceria mucho!

Etiquetas: ventanas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:09.