At 02:11 AM 8/4/2002 +0430, you wrote: >Even a very non-trivial reference to somewhere in MSDN I can give to a >programmer as a start point?
When it comes to setting up a keyboard layout the first thing is to distinguish between Win95/98/ME and NT4/Win2000. In the former the layout is fixed by the file kbd**.kbd, where ** is a label for the country/language. This is basically a data file whose format is available in the DDK for Windows. Once you know the format and the conventions about dead keys, etc., you can write an ordinary C-language program to create a new *.kbd file. Strictly speaking the examples of such files given in the DDK for Windows show assembly code, but this can relatively easily be rewritten as C-code, since it is just data, not a program. In the latter case (NT etc) the layout is fixed by a file kbd**.dll, and to create this you need to go through the procedures that are available only if you have the whole DDK for Win2000. The file is still just data, but since it is transformed into a dll, you cannot just create it with a bit of DIY programming. In the DDK there are many header files that define the various layers that go into it. Perhaps it is possible to fillet out the essential parts to create a stand-alone program which just makes a layout, but it would not be easy. Basically you have to subscribe to MSDN, and then get the DDK from one of the DVD's. Once you have the kayout file you copy it into the \System folder, and also make a reference to it in the appropriate part of the registry. It then becomes available from the control panel Keyboard applet, and will be listed along with all the others on top of that language icon in the control tray. As you can see it is all non-trivial. I have done it for Win95, without using MSDN, but when I went to Win2000, I had no choice but to get MSDN, even though that includes a vast amount of material that has nothing to do with keyboard layouts. Now I have made layouts for handling classical Greek accents, and also the diacriticals needed to transcribe Arabic/Persian/Sanskrit. These were not unicoded, but I will presently recreate the layouts to make them unicode compliant. The layout provided by tavultesoft is not the same thing. This provides an additional layer that takes effect on top of your existing kbd-file. I once wrote something about like that, but (in may case at least) it was not as efficient as a real change in the kbd file. There might be something of interest to you in the Keyboard program on my site http://ourworld.compuserve.com/homepages/RaymondM . Raymond Mercier

