El teclado virtual de windows lo puedes invocar llamando al programa osk.exe, solo seria cuestion de que regreses el foco a la aplicacion, y al guardar el registro o algo cierras la ventana del teclado virtual
acabo de hacer una pequeña prueba en delphi 5, una forma, 1 boton para invocar el teclado y 1 memo para escribir, en el boton puse este codigo:
Código Delphi
[-]
mmo1.SetFocus; WinExec('osk.exe',SW_SHOWNOACTIVATE);
y listo!, funciona bien, muestra el teclado pero el foco sigue en el memo asi que lo que ponga en el teclado virtual se queda en el memo