Enabling/Setting Keyboard Layouts

  • Thread starter Thread starter LD
  • Start date Start date
L

LD

Hi

I already searched through the NG and posted a Message a month ago,
but nobody could help me.

As it seems to be impossible to use the Language Support components as
prototype while redefining the cmiLangKbdxxxx values, I wonder if
there is an another possibility to set one or more keyboard layout(s)
for a specific language. I'd like to have an automated solution, I
don't want to select the layouts manually in TD.

Somebody has the same problem?

Thanks in advance
Lukas
 
Only programmatically trough script. (this is undocumented)

Konstantin will probably tell you more about how to do this.

Regards,
Slobodan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
I agree with Slobodan - there is only CMI undocumented way.

It shouldn't be hard to enumerate all "language support" component in the configuration and set their cmiLangKbdXXXX extended
properties to True.
Although, it would make a sense to put some efforts to do that automatically if you have many, many language support components in
your image.

LD, let me know if you want to know more info on CMI or need some help with it (I may extend XPeTools macro component from
www.xpefiles.com to add this functionality if required).
 
Thanks a lot!

I will probably select the keyboard layouts manually, we actually have
just about 4 languages. But maybe we will need an automated solution
sometime in the future. I would appreciate if you can give me some
more info on CMI, Konstantin.

When I select several keyboard layouts, I would like to have just one
of them active (installed) as my default keyboard layout and the other
ones inactive in my system.
I can't select the layout at "Regional and Language Options". It seems
that I have to activate the default layout for the selected language
in another component..
Or am I wrong? Maybe that's also just possible with scripting?


Regards
Lukas
 
Hi Lukas,

Frankly, there is not much I can tell you about the CMI interfaces. They are undocumented and it will be hard for me to list the
functionality I reverse engineered from the XPe binaries. (I am not a good doc writer, I guess)

As you know, CMI stands for Component Management Interface. This is the layer that seamlessly provides access to the XPe database
from set of tools (TD, CD, CDM), as well as provide for switching databases on the fly, a database communications layer was called
for in the overall architecture.
Basically, CMI is a set of objects that you have registered when you installed the XPe tools.

For some examples on how use the CMI you may take a look at the CMI Explorer tool supplied along with XPe/SP1 (VALUEADD\MSFT\SUPPORT
directory). Also, on www.xpefiles.com you will find my XPeTools set of components (I've just put the latest there, so please read
Readme.txt from the component zip to understand what the components do). Using the component you may get a feeling what could be
done (or automated) with the CMI object model.
XPeTools will also help you in hacking the "Regional and Language Options" component. What I see from the component script, that all
the locale specific information gets initialized and set within the script. It may not be hard to change (or implement your own) the
component that will carry the same functionality but plus the other things you need to accomplish.

In case you need more info or help, you will need to contact me offline (konstmor @ _no_spam_hotmail.com).
 
Hi Lukas,

I've taken a quick look at the "Language Support Prototype" and "Regional and Language Options" component's scripts and my first
impression - automation for many things could be done from there.
Particularly, if you implement your own component in place of the "Regional and Language Options" you may have additional UI
elements to specify keyboard layouts for selected languages and default keyboard layout as well.
 
Hi Konstantin

Thank you very much for your help!
I'm already on my way to understand what can be done with CMI.
But how do I get the Component scripts (e.g. the script of "Regional
and Language Options") you mentioned? Did you get these with
CMiExplorer?

Regards
Lukas
 
Hi Lukas,

You haven't installed the XPeTools components I mentioned previously, have you? Otherwise you would not ask the question :-)

CMI is not documented. Microsoft did not provide any docs about it and tried to close all the ways to hide the calls in their
standard components (e.g. you cannot export any component from the database :-( ).
So, what I did was a hack but it allowed me to see component scripts/dhtmls. Check out DependencyExplorer component from XPeTools
pack. There will be two options that will allow you to save selected component scripts and htmls. Exploring the saved files you will
learn the CMI.
 
Konstantin,

Other way for accessing CMI would be to use CD on QFE updates, not much but
it works.

Regards,
Slobodan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

KM said:
Hi Lukas,

You haven't installed the XPeTools components I mentioned previously, have
you? Otherwise you would not ask the question :-)
CMI is not documented. Microsoft did not provide any docs about it and
tried to close all the ways to hide the calls in their
standard components (e.g. you cannot export any component from the database :-( ).
So, what I did was a hack but it allowed me to see component
scripts/dhtmls. Check out DependencyExplorer component from XPeTools
pack. There will be two options that will allow you to save selected
component scripts and htmls. Exploring the saved files you will
learn the CMI.
They are undocumented and it will be hard for me to list
the layer that seamlessly provides access to the XPe
databases on the fly, a database communications layer was
of components (I've just put the latest there, so please
do). Using the component you may get a feeling what could
Options" component. What I see from the component script,
script. It may not be hard to change (or implement your
component in the configuration and set their cmiLangKbdXXXX
 
Back
Top