| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | |
 | 
23-03-2008, 17:33:18
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Cambiar el teclado alfanumérico de pantalla de Windows Hola una vez más vengo a dar la tabarra.
Tengo una aplicación en la que en ocasiones necesito activar el teclado de pantalla y para ello activo el propio de Windows, es decir, el OSK.EXE y todo funciona bien.
El único problema es que el tamaño de las teclas es demasiado pequeño para manejarle en una pantalla táctil mediante pulsaciones con los dedos.
Y esta es mi pregunta:
¿Sabeis si se puede redimensionar el tamaño del teclado?
Yo he estado investigando y no he visto ninguna opción que permita hacerlo.
Muchas gracias por vuestra ayuda.
Saludos a todos.
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
23-03-2008, 19:01:21
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 388
| | Hola,yo se que con un codigo se puede redimensionar cualquier ventana,ventanas que no fueron programadas para redimensionarse se pueden agrandar sin problemas ,pero suponete que se lo aplicas a este programa ,no creo que se redimensionen los botones tambien....ya que no fue programado para eso....la mejor opcion es crearte en visual basic un teclado como el de windows y listo,le pones el tamaño que quieras y las opciones que quieras,no es dificil...
saludos.
__________________ Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein | 
24-03-2008, 18:20:12
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Hola y gracias por tu respuesta.
He creado un teclado alfanumérico y para enviar los caracteres ortograficos no tengo ningún problema, pero cuando quiero recoger el valor del evento keyPress no sé como hacerlo.
Me explico:
Cuando pulso el botón que representa la tecla Enter o Intro quiero que el evento KeyPress tome el VALOR 13, como si hubiera pulsado la tecla Enter del teclado, pero no sé como definirlo.
Igual me ocurre con los valores de las teclas de las flechas.
Podriais indicarme como simular estos eventos?
Muchas gracias.
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
24-03-2008, 21:14:41
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 388
| | o sea la idea del teclado de windows es mandar las pulsaciones a cualquier ventana de windows,no a la ventana de la misma aplicacion,por lo tanto aca los eventos del formulario no sirven,se tienen que "mandar" las pulsaciones,por lo tanto se tiene que usar si o si una funcion Api,tambien se puede usar sendkeys pero esta ha tenido mala fama pues si es usada mal puede hasta trabar el teclado y tener que reiniciar la pc.la pregunta es ¿vos queres hacer algo como el tecaldo de windows? o directamente algo facil y que las pulsaciones se manden a la misma aplicacion tuya....
saludos.
__________________ Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein | 
25-03-2008, 01:28:08
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Hola de nuevo Sebas.
Gracias por tu ayuda.
Lo que qiero es mandar las pulsaciones a mi propia aplicación.
Me explico:
Los caracteres alfanuméricos los envio a un cuadro de texto, y en este cuadro de texto en el evento KeyPress (Key Ascii as Integer), en función de la tecla pulsada le envio una u otra instrucción. Por ejemplo:
Private Sub txtbuscar_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
buscar
Case 27
txtBuscar.Visible = False
TDBCarta.Close
TDBCarta.Visible = False
frameTeclado.Visible = False
End Select
End Sub
En este caso, selecciono la acción a tomar en función de si se ha pulsado Enter o Escape y esto mismo lo hago en otro control, en este caso una rejilla que presenta una tabla.
´
Enviar los caracteres al cuadro de texto no tiene ningún misterio, pués en este caso no intercepto las pulsaciones del teclado, si no que envio el caracter en función del botón Command que pulso en el teclado de pantalla. Pero en el caso de la tecla Enter, Escape o Flechas, no sé como simular la pulsación de esas teclas en el teclado de pantalla.
No sé si me habré explicado bien.
Gracias de nuevo y saludos.
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
26-03-2008, 15:57:05
| | Gran Participación en el Foro | | Registrado: oct 2003 Posts: 438
| | Código: Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const VK_CR = 13
Const VK_ESC = 27
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub | 
26-03-2008, 17:51:55
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Hola Miguel. Muchas gracias por tu respuesta.
Ahora lo voy a probar (seguro que es correcto) y ya te contaré.
Gracias de nuevo y hasta pronto.
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
26-03-2008, 20:12:15
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Probado y, como era de suponer, funciona a las mil maravillas.
Muchas gracias de nuevo
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
01-04-2008, 00:02:15
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Re: Cambiar el teclado alfanumérico de pantalla de Windows Cita:
Empezado por MiguelS Código: Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const VK_CR = 13
Const VK_ESC = 27
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub | Todo funciona muy bien, pero tengo problemas para capturar los valores de las teclas de Flecha, suprimir, etc.
¿Sabei en dónde puedo encontrar un listado de estos Valores?
gracias
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
01-04-2008, 00:43:13
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 388
| | Re: Cambiar el teclado alfanumérico de pantalla de Windows Hola,suponete que vos tenes un textbox llamado Text1,bueno usa este codigo: Código: Const KEYEVENTF_KEYUP = &H2
Const KEYEVENTF_EXTENDEDKEY = &H1
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Sub Pulsar_Tecla(Tecla As Long)
Call keybd_event(Tecla, 0, 0, 0)
Call keybd_event(Tecla, 0, KEYEVENTF_KEYUP, 0)
End Sub
Private Sub Command1_Click()
Text1.SetFocus
Call Pulsar_Tecla(vbKeyA)
End Sub con eso escribis la letra "a" en el textbox y las constantes de las otras teclas las encontras aca: Constante Valor Descripción vbKeyLButton 1 botón izquierdo del ratón
vbKeyRButton 2 botón derecho del ratón
vbKeyCancel 3 tecla CANCEL
vbKeyMButton 4 botón central del ratón
vbKeyBack 8 tecla Retroceso
vbKeyTab 9 tecla Tabulador
vbKeyClear 12 tecla CLEAR
vbKeyReturn 13 tecla Enter
vbKeyShift 16 tecla Mayúsculas
vbKeyControl 17 tecla Ctrl
vbKeyMenu 18 tecla Menu
vbKeyPause 19 tecla Pausa
vbKeyCapital 20 tecla Bloq Mayús
vbKeyEscape 27 tecla Esc
vbKeySpace 32 tecla Espaciador
vbKeyPageUp 33 tecla RePág
vbKeyPageDown 34 tecla AvPág
vbKeyEnd 35 tecla Fin
vbKeyHome 36 tecla Inicio
vbKeyLeft 37 tecla Flecha Izquierda
vbKeyUp 38 tecla Flecha Arriba
vbKeyRight 39 tecla Flecha Derecha
vbKeyDown 40 tecla Flecha Abajo
vbKeySelect 41 tecla SELECT
vbKeyPrint 42 tecla ImprPant
vbKeyExecute 43 tecla EXECUTE
vbKeySnapshot 44 tecla SNAPSHOT
vbKeyInsert 45 tecla Insertar
vbKeyDelete 46 tecla Supr
vbKeyHelp 47 tecla HELP
vbKey0 48 tecla 0
vbKey1 49 tecla 1
vbKey2 50 tecla 2
vbKey3 51 tecla 3
vbKey4 52 tecla 4
vbKey5 53 tecla 5
vbKey6 54 tecla 6
vbKey7 55 tecla 7
vbKey8 56 tecla 8
vbKey9 57 tecla 9
vbKeyA 65 tecla A
vbKeyB 66 tecla B
vbKeyC 67 tecla C
vbKeyD 68 tecla D
vbKeyE 69 tecla E
vbKeyF 70 tecla F
vbKeyG 71 tecla G
vbKeyH 72 tecla H
vbKeyI 73 tecla I
vbKeyJ 74 tecla J
vbKeyK 75 tecla K
vbKeyL 76 tecla L
vbKeyM 77 tecla M
vbKeyN 78 tecla N
vbKeyO 79 tecla O
vbKeyP 80 tecla P
vbKeyQ 81 tecla Q
vbKeyR 82 tecla R
vbKeyS 83 tecla S
vbKeyT 84 tecla T
vbKeyU 85 tecla U
vbKeyV 86 tecla V
vbKeyW 87 tecla W
vbKeyX 88 tecla X
vbKeyY 89 tecla Y
vbKeyZ 90 tecla Z
vbKeyNumpad0 96 tecla 0 del teclado numérico
vbKeyNumpad1 97 tecla 1 del teclado numérico
vbKeyNumpad2 98 tecla 2 del teclado numérico
vbKeyNumpad3 99 tecla 3 del teclado numérico
vbKeyNumpad4 100 tecla 4 del teclado numérico
vbKeyNumpad5 101 tecla 5 del teclado numérico
vbKeyNumpad6 102 tecla 6 del teclado numérico
vbKeyNumpad7 103 tecla 7 del teclado numérico
vbKeyNumpad8 104 tecla 8 del teclado numérico
vbKeyNumpad9 105 tecla 9 del teclado numérico
vbKeyMultiply 106 tecla Símbolo Multiplicación (*) del teclado numérico
vbKeyAdd 107 tecla Símbolo Suma (+) del teclado numérico
vbKeySeparator 108 tecla Intro del teclado numérico
vbKeySubtract 109 tecla Símbolo Resta (-) del teclado numérico
vbKeyDecimal 110 tecla Símbolo decimal(.) del teclado numérico
vbKeyDivide 111 tecla Símbolo División (/) del teclado numérico
vbKeyF1 112 tecla F1
vbKeyF2 113 tecla F2
vbKeyF3 114 tecla F3
vbKeyF4 115 tecla F4
vbKeyF5 116 tecla F5
vbKeyF6 117 tecla F6
vbKeyF7 118 tecla F7
vbKeyF8 119 tecla F8
vbKeyF9 120 tecla F9
vbKeyF10 121 tecla F10
vbKeyF11 122 tecla F11
vbKeyF12 123 tecla F12
vbKeyF13 124 tecla F13
vbKeyF14 125 tecla F14
vbKeyF15 126 tecla F15
vbKeyF16 127 tecla F16
vbKeyNumlock 144 tecla BloqNum
cambiale a cada boton su valor y listo,tenes todo el teclado...
saludos.
__________________ Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 03:33:57.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |