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

[SOLUCIONADO] Cambiar ventana activa para escribir en ella

Estas en el tema de Cambiar ventana activa para escribir en ella en el foro de .NET en Foros del Web. Hola, estoy realizando un teclado en vb.net y me tope con un problema, tengo que hacer que este teclado escriba en ventanas "anteriormente activadas" por ...
  #1 (permalink)  
Antiguo 19/02/2013, 21:37
 
Fecha de Ingreso: febrero-2013
Mensajes: 14
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Cambiar ventana activa para escribir en ella

Hola, estoy realizando un teclado en vb.net y me tope con un problema, tengo que hacer que este teclado escriba en ventanas "anteriormente activadas" por ejemplo en word, un block de notas o paginas de Internet.

Tengo botones (teclas) que al hacer clic realizaran la función de escribir su determinada tecla, por ejemplo el numero 1

Código vb:
Ver original
  1. Private Sub Tecla_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tecla_1.Click
  2.         'En esta parte iria una funcion para cambiar ventana
  3.        SendKeys.Send("1") 'Se escribe el numero 1 en la ventana aparte
  4. End Sub


Apenas hoy empeze a utilizar .net y no conozco mucho de esto si pudiesen ayudarme se los agradeceria mucho.
  #2 (permalink)  
Antiguo 20/02/2013, 10:15
 
Fecha de Ingreso: febrero-2013
Mensajes: 14
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Cambiar ventana activa para escribir en ella

He encontrado esto pero no puedo hacerlo funcionar y no se porque...

Traigo una imagen y es la primera vez que veo las funciones FindWindow, SetForegroundWindow y SendMessage


  #3 (permalink)  
Antiguo 20/02/2013, 11:10
 
Fecha de Ingreso: febrero-2013
Mensajes: 14
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Cambiar ventana activa para escribir en ella

He encontrado este codigo, me ha funcionado, ahora la pregunta es... como cambio a la ultima ventana activa sin tener que ponerle el nombre de la aplicacion y el titulo de la ventana???


Código vb:
Ver original
  1. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  2.     Private Shared Function FindWindow( _
  3.        ByVal lpClassName As String, _
  4.        ByVal lpWindowName As String) As IntPtr
  5.     End Function
  6.  
  7.    
  8.     <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  9.     Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Long
  10.     End Function
  11.  
  12.     Dim ParenthWnd As New IntPtr(0)
  13.    
  14.  
  15.     Public Sub cambioventana(ByVal title As String)
  16.  
  17.         'Busca la ventana, los valores deben ser la aplicacion y el titulo de la aplicacion
  18.        'Esto es lo que quiero saber...
  19.        ParenthWnd = FindWindow("Notepad", "Sin título: Bloc de notas")
  20.  
  21.         If ParenthWnd.Equals(IntPtr.Zero) Then
  22.             MessageBox.Show("No se encontro la ventana")
  23.         Else
  24.             ' La ha encontrado
  25.            SetForegroundWindow(ParenthWnd)
  26.         End If
  27.     End Sub


Gracias de antemano

Etiquetas: teclado, 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 04:17.