Resultados 1 al 3 de 3

KeyBd_event

Vista híbrida

Mensaje anterior Mensaje anterior   Próximo mensaje Próximo mensaje
  1. #1 KeyBd_event 
    Iniciado
    Fecha de ingreso
    Oct 2008
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Tengo toda la informacion de msdn sobre la funcion keybd_event
    necesito Trabajar con ella dentro de VBA
    En concreto enviar
    Numeros
    Enter
    y
    {F8}
    Francamente, necesitaraia algun ejemplo. Particularmente , reconozco no saber como pasar el Hexadecimal....
    Por ejemplo sil a tabla de msdn V Key - Code me da
    VK_F8 (0x77)
    F8 key

    Como mando (siempre estoy en VBA o VB6, NO en VB .NET )????

    Ahora bien existe alguna rutinita para
    enviar una cadena de Numeros o Texto con keybd_event????
    Citar  
     

  2. #2  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Buenas! Antes de nada comentarte dos enlaces, que supongo, al menos uno de ellos ya lo habrás visto:

    http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx

    Y la segunda, corresponde a nuestra ezine, en donde se explica con detalle esa función:
    http://www.hh-server.com/archivos/ezine/HH_eZine_N2.pdf

    La solución a tu problema, aparece en la ezine, en concreto en el apartado que dice:

    Nota: Podemos usar la función VkKeyScan (ch: char), que dado un carácter, obtiene el código asociado que debemos pasar a keybd_event. Está contenida en User32.dll de nombre “VkKeyScanA”
    El código por tanto, se resumiría en recorrer la cadena de números que quieres enviar, luego simular ENTER y posteriormente F8:

    desde i=1 hasta longitud(cadena) hacer //"cadena" contiene los numeros a enviar
    keybd_event(VkKeyScan(cadena[i]), 0, 0, 0);
    fin_desde

    //a continuación simulamos ENTER:
    keybd_event(VK_RETURN, 0, 0, 0); //PULSAMOS ENTER
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); //SOLTAMOS ENTER

    //y por último F8:
    keybd_event(VK_F8, 0, 0, 0); //PULSAMOS F8
    keybd_event(VK_F8, 0, KEYEVENTF_KEYUP, 0); //SOLTAMOS F8


    El esquema es secuencial. Primero la cadena, luego ENTER y luego F8.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Oct 2008
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Soy forero de excel y tengo mi propio sitio.
    Vaya pues mi agradecimiento por la amplitud de tu respuesta.
    Sinceramente , aun no me he puesto a probar,....... pero creo que si a mi me gusta que me agradezcan, no puedo menos que hacerlo, y ya....

    Despues que pruebe te cuento como me fue y si me surge alguna duda adicional...
    GALILEOGALI

    NOSPAM
    Última edición por j8k6f4v9j; 08-10-2008 a las 23:13
    Citar  
     

Marcadores

Marcadores