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

Usar control de teclado cuando el form no está en primer plano

Estas en el tema de Usar control de teclado cuando el form no está en primer plano en el foro de .NET en Foros del Web. Bueno creo que el título es bien claro no? Lo que deseo hacer es que cuando pulse una combinación de teclas (aunque el formulario no ...
  #1 (permalink)  
Antiguo 02/10/2008, 12:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta Usar control de teclado cuando el form no está en primer plano

Bueno creo que el título es bien claro no?

Lo que deseo hacer es que cuando pulse una combinación de teclas (aunque el formulario no esté en primer plano) ejecute un procedimiento de teclado.

El programa ue he hecho es un ColorPicker, es decir, coge el color de un pixel que hay en la pantalla cuando pulso Ctrl y muevo el ratón sobre una zona (lo muestro en un picturebox) y cuando está el formulario en primer plano.

Lo que deseo es que haga lo mismo pero cuando el formulario no está en primer plano.

Porque he añadido un procedimiento que cuando pulsa click con el ratón(mientras mantienes ctrl te copia el color en hexadecimal en la memoria del PC)

Alguien sabe como podría hacerlo? He intentado con BackgroundWorker pero no se como mandarle el evento de teclado.

Gracias de antemano!
  #2 (permalink)  
Antiguo 02/10/2008, 12:43
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 10 años, 2 meses
Puntos: 87
Respuesta: Usar control de teclado cuando el form no está en primer plano

con el api de Win32, capturar los mensajes del raton y del ctrl si los dos son presionados al mismo tiempo y no esta manajeado por la aplciacion actual que lance a tu aplicacion (colorpicker)

http://www.codeproject.com/KB/GDI/mousecapture.aspx

pero la pregunta si tienes el screen y el motor de gdi porq no solo capturas el evento dle mouse y cuando lo tengas tomas el screen actual, el rectangulo lo conviertes en un bitmap y obtienes el color del pixe donde presiono el raton.

solo una opinion.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 02/10/2008, 13:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Usar control de teclado cuando el form no está en primer plano

Graias por la info pero solo se vb.net no C#.net :(

Respecto a lo segundo, la verdad, no se a que te refieres.

Yo lo que hago es con un timer, cuando pulso ctrl se activa el proceso del timer y es fácil, defines una variable como color y lmediante la función GetPixel, saco el hdc y la posición del ratón , tanto x como y y saco el saco el rgb del color el cual aplico al pictureBox.
  #4 (permalink)  
Antiguo 02/10/2008, 13:15
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 10 años, 2 meses
Puntos: 87
Respuesta: Usar control de teclado cuando el form no está en primer plano

esta perfecto como lo haces (solo era un comentario lo mio), lo que necesitas hacer es que mas que funcione como desktop application mas como aplicacion del taskbar y que cada vez que se lance el evento del click este invoque tu metodo que obtiene el color.

solo investigate como manejar los eventos antes de que alcancen la otra aplicacion "Win32 Hooks Refresher"
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 02/10/2008, 13:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Usar control de teclado cuando el form no está en primer plano

He buscado lo de "Win32 Hooks Refresher" incluso por partes en la web y no he encontrado nada, incluso en MSDN pero nada.

Solo ésto (pero nada)
Cita:
http://social.msdn.microsoft.com/Search/es-ES/?Refinement=26&Query=Win32+Hook
QUiero hacer eso ya que el evento de copiar el valor hexadecimal cuando hago clik no funciona porque no pulso click sobre el form.

Algo más sobre "Win32 Hooks Refresher"?, porque no he podido encontrar nada.
  #6 (permalink)  
Antiguo 02/10/2008, 13:47
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 10 años, 2 meses
Puntos: 87
Respuesta: Usar control de teclado cuando el form no está en primer plano

revisate esto http://www.codeproject.com/KB/dotnet...oftDotNET.aspx
asi como este

http://www.codeproject.com/KB/mobile...ion&view=Quick

en ambos apoyate por spy++ para revisar handles y que eventos de wm_mouse quieres capturar.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 02/10/2008, 14:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Usar control de teclado cuando el form no está en primer plano

ok Gracias.

De todas formas lo del click del ratón ya lo hse solucionado con la tecla "Espacio", jeje, pero miraré los links que me ahs pasado.

Una pregunta rápida. Es posible ver el icono de una aplicación que tiene el form en: "FixedToolWindow"?

Es decir, sale el icono en todos menos en ese estilo.
  #8 (permalink)  
Antiguo 02/10/2008, 15:06
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 10 años, 2 meses
Puntos: 87
Respuesta: Usar control de teclado cuando el form no está en primer plano

mmm bueno creo que eso el buen DavidElGrande te lo puede contestar postea tu duda en el foro de vb.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #9 (permalink)  
Antiguo 02/10/2008, 15:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Usar control de teclado cuando el form no está en primer plano

Ok, gracias por todo Peterpay! :)
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 22:03.