lunes, 29 de enero de 2007

Visual Basic 6 y Windows Vista

Hace ya un buen tiempo que estoy utilizando Windows Vista pese a todos los inconvenientes que una migración de sistema operativo trae consigo.
Hoy se me ocurrió intentar programar en Visual Basic 6.0, luego de darle permisos de administrador al entorno de desarrollo (para que puede registrar y desregistrar dll's a su gusto), y luego de buscar dlls viejas (como las necesarias para correr aplicaciones VB 5.0); logré compilar la aplicación.
Cuando voy a probar la aplicación me topo con que la tipica rutina de cambiar la tecla tabulación por enter no funcionaba (para facilitar la tarea de la carga masiva de datos).
Investigue un poco y encuentro que el problema esta en la nueva arquitectura de seguridad de windows vista.
En fin la solución consiste en enviar la tecla tab utilizando las APIS de windows, para ello es necesario declarar la api donde corresponda su uso (ya sea privada o publica según el ámbito que deseen) y luego utilizarla, adjunto el código de fuente de la función que envía la tabulación y la llamada a la api.
Espero que les sea útil en esto de migrar aplicaciones a Windows Vista! (este código de API lo pueden encontrar también en un articulo de MSDN por lo que no es pura autoría mía)

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const KEYEVENTF_KEYUP = &H2
Const VK_TAB = &H9

Public Sub sendTabKey()

keybd_event VK_TAB, 0, 0, 0
keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0
End Sub

Bienvenidos

Hola, siempre hay ideas para compartir, una solución es una idea desde mi primer punto de vista.
Arranco este blog con un nivel mas serio, quizas sea la edad o algo pero recién estrenando mis 24 años arranco este blog 100% dedicado a colocar artículos interesantes.
No se si alguien lo va a leer o no. Pero aquí va a estar, bienvenidos... y espero serles útil (o al menos servirle al google como enlace).