Foros


Comfort Software :: Foros :: Development
<< Tema anterior | Tema siguiente >>   

How to activate different keyboards

Autor Mensaje
Comfort
Thu Jan 24 2008, 04:54AM


Unido: Wed Sep 19 2007, 03:42PM
Mensajes: 617
You can specify different types of on-screen keyboards to be displayed.

To do this, change (from your program) the KeyboardName parameter in the registry at HKEY_CURRENT_USER\Software\ComfortSoftware\CKeyboard.

You have to do it before showing the on-screen keyboard with Windows Messages (see http://www.comfort-software.com/forum-t17.html).


[ Editado Mon May 26 2008, 09:37AM ]

Have a nice day
Volver arriba
Neeraja
Mon Mar 23 2009, 03:39PM
Miembro registrado #250
Unido: Tue Feb 03 2009, 04:30PM
Mensajes: 4
Hi
I tried to open the NumPad programatically by changing the registry.But its not working. I wanted to open an alphaneumeric keyboard for text box and NumPad for numeric controls. Please let me know if I can do this by any other way.
Thanks in advance.
Volver arriba
Comfort
Wed Apr 01 2009, 07:09AM


Unido: Wed Sep 19 2007, 03:42PM
Mensajes: 617

char  KeyboardName[80];
COPYDATASTRUCT MyCDS;

   KeyboardName = "Standard";
// Fill the COPYDATA structure
// 
   MyCDS.dwData = 1;          // function identifier
   MyCDS.cbData = sizeof( KeyboardName );  // size of data
   MyCDS.lpData = &KeyboardName;           // data structure
//
// Call function, passing data in &MyCDS
//
   HWND hwDispatch = FindWindow( "TFirstForm", "CKeyboardFirstForm" );
   if( hwDispatch != NULL )
      SendMessage( hwDispatch,
                   WM_COPYDATA,
                   (WPARAM)(HWND) NULL,
                   (LPARAM) (LPVOID) &MyCDS );


[ Editado Tue Apr 14 2009, 01:48AM ]

Have a nice day
Volver arriba
JohnVb
Thu Apr 15 2010, 07:22PM
Miembro registrado #140
Unido: Sat Jul 05 2008, 05:07PM
Mensajes: 1
Hi
I also had a problem using the registry to load different kb set for the floating kb . I wanted to load different kb before the user click the floating kb button but it did not work, it seems that it is not reading the kb setting on every click (bug?).

so I used the post msg approach and it is working ok now
thanks!

I am evaluating On-Screen Keyboard V4.0 with vb6
the code converted to vb:

Private Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

Private Const WM_COPYDATA = &H4A

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Public Function VKBLoadKeyboard(ByVal xi_KeyboardName As String) As Boolean

Dim KeyboardName(1 To 255) As Byte
Dim hwnd As Long
Dim MyCDS As COPYDATASTRUCT
Dim sString As String

sString = Trim$(xi_KeyboardName)
If sString = "" Then Exit Function
Call CopyMemory(KeyboardName(1), ByVal sString, Len(sString))

' Fill the COPYDATA structure
'
MyCDS.dwData = 1 ' function identifier
MyCDS.cbData = Len(sString) + 1 ' size of data
MyCDS.lpData = VarPtr(KeyboardName(1)) ' data structure
'
' Call function, passing data in &MyCDS
'
hwnd = FindWindow("TFirstForm", "CKeyboardFirstForm")
If (hwnd <> 0) Then
Call SendMessage(hwnd, WM_COPYDATA, 0, MyCDS)
End If

End Function
Volver arriba
Moderadores: Comfort

Saltar:     Volver arriba

Sindicalizar este hilo: rss 0.92 Sindicalizar este hilo: rss 2.0 Sindicalizar este hilo: RDF
Powered by e107 Forum System