Autor Tema: evento clic inverso  (Leído 3102 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
evento clic inverso
« en: 01 de Mayo de 2009, 14:49:07 »
hola.quiero hacer algo que quizas sea bastante dificil si no imposible.

quiero subir y bajar el brillo de una pda desde una comunicacion serie.pero no se manejar el registro de windows para esta funcion.entonces he optado por controlar un programa que sirve para ejecutar aplicaciones y eventos haciendo clic en los botones de la pda ya preconfigurados.este es el programa:
"AE Button Plus v2.6.6.1" es gratuito y facil de encontrar en google.

entonces se me ha ocurrido realizar un programa en vbasic.pero lo mas que se hacer al respecto es capturar los datos del evento clic de los botones de la pda.
pero no se como forzar la emulacion de la pulsacion de una tecla.

he insertado un boton en el formulario.y que cuando se produzca el evento clic,realize el evento clic de otro boton.pero claro esta no funciona.
como se podria hacer esto?

hay algun modulo para realizar pulsaciones de teclas?

Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: evento clic inverso
« Respuesta #1 en: 01 de Mayo de 2009, 14:58:31 »
¿No te sirve el comando SendKeys?

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: evento clic inverso
« Respuesta #2 en: 01 de Mayo de 2009, 15:16:39 »
hola nocturno.el valor de e.keycode para el boton derecho es 39.

pero no me sale ese comando en vb8 para smart device.seria algo como SendKeys=39.y emularia la pulsacion de la tecla.pero no se porque no funciona.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: evento clic inverso
« Respuesta #3 en: 01 de Mayo de 2009, 16:20:48 »
Hola groundman. Hay una llamada a la WinAPI que se llama "mouse_event" y que te permite controlar el mouse. También podrías hacerlo con la llamada "sendmessage". Por ahi en la web encontras algun ejemplo.

Un saludo.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: evento clic inverso
« Respuesta #4 en: 01 de Mayo de 2009, 17:15:10 »
gracias por vuestra ayuda.al final buscando buscando.con pedazos de aqui y alli logre realizar lo que queria.
por eso pongo el codigo de un programa que he hecho:

su funcion son cuatro botones.arriva,abajo,derecha e izquierda.y al pulsarlos se realiza la pulsacion de las teclas up,down,right,left.y que a la vez visualiza el codigo ascii de la tecla pulsada en un cuadro de texto.

Public Class Form1

    Public Declare Sub keybd_event Lib "coredll.dll" (ByVal bVK As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtrainfo As Long)
    Const VK_LEFT = &H25   'valores ascii de las teclas
    Const VK_UP = &H26
    Const VK_RIGHT = &H27
    Const VK_DOWN = &H28




    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        keybd_event(VK_UP, 0, 0, 0)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        keybd_event(VK_LEFT, 0, 0, 0)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        keybd_event(VK_RIGHT, 0, 0, 0)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        keybd_event(VK_DOWN, 0, 0, 0)
    End Sub

    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If (e.KeyCode = System.Windows.Forms.Keys.Up) Then
            TextBox1.Text = e.KeyCode
            'Up
        End If
        If (e.KeyCode = System.Windows.Forms.Keys.Down) Then
            TextBox1.Text = e.KeyCode
            'Down
        End If
        If (e.KeyCode = System.Windows.Forms.Keys.Left) Then
            TextBox1.Text = e.KeyCode
            'Left
        End If
        If (e.KeyCode = System.Windows.Forms.Keys.Right) Then
            TextBox1.Text = e.KeyCode
            'Right
        End If
        If (e.KeyCode = System.Windows.Forms.Keys.Enter) Then
            TextBox1.Text = e.KeyCode
            'Enter
        End If
    End Sub

   
End Class
Montando mi primera impresora 3D (Raprep Prusa i3)