Forum


Comfort Software :: Forum :: Development
<< Discussione precedente | Discussione successiva >>   

How to activate different keyboards

Autore Messaggio
Comfort
Thu Jan 24 2008, 04:54AM


Registrato il: Wed Sep 19 2007, 03:42PM
messaggi: 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).


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

Have a nice day
Torna ad inizio pagina
Neeraja
Mon Mar 23 2009, 03:39PM
Utenti Registrati #250
Registrato il: Tue Feb 03 2009, 04:30PM
messaggi: 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.
Torna ad inizio pagina
Comfort
Wed Apr 01 2009, 07:09AM


Registrato il: Wed Sep 19 2007, 03:42PM
messaggi: 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 );


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

Have a nice day
Torna ad inizio pagina
JohnVb
Thu Apr 15 2010, 07:22PM
Utenti Registrati #140
Registrato il: Sat Jul 05 2008, 05:07PM
messaggi: 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
Torna ad inizio pagina
Moderatori: Comfort

Salta:     Torna ad inizio pagina

Syndicate questa discussione: rss 0.92 Syndicate questa discussione: rss 2.0 Syndicate questa discussione: RDF
Powered by e107 Forum System