Foren


Comfort Software :: Foren :: Development
<< Vorheriger Thread | Nächster Thread >>   

How to activate different keyboards

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


Dabei seit: Wed Sep 19 2007, 03:42PM
Einträge: 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).


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

Have a nice day
Nach oben
Neeraja
Mon Mar 23 2009, 03:39PM
Registriertes Mitglied #250
Dabei seit: Tue Feb 03 2009, 04:30PM
Einträge: 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.
Nach oben
Comfort
Wed Apr 01 2009, 07:09AM


Dabei seit: Wed Sep 19 2007, 03:42PM
Einträge: 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 );


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

Have a nice day
Nach oben
JohnVb
Thu Apr 15 2010, 07:22PM
Registriertes Mitglied #140
Dabei seit: Sat Jul 05 2008, 05:07PM
Einträge: 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
Nach oben
Moderatoren: Comfort

Forum:     Nach oben

Syndicate diesen thread: rss 0.92 Syndicate diesen thread: rss 2.0 Syndicate diesen thread: RDF
Powered by e107 Forum System