Virtual PC needs international thought about its keyboard support

by Michael S. Kaplan, published on 2005/05/02 00:01 -07:00, original URI:

I will start by saying that Virtual PC 2004 rocks. It truly does.

I spent a bunch of time yesterday building interesting Virtual Machines based on my simple Windows 2000, XP, and Server 2003 VMs that I keep around and the fact that it really rocks as a product was never to far from my mind.

Well, until I was chaging the default keyboard layouts of the guest machines in the VMs and my host machine for some demos I will be using them for. As a product, Virtual PC did fall a tiny little bit in my otherwise high opinion of it....

To start with, it is not so great with its default behavior used to switch out of the guest machine and move to the host machine -- it uses the Right Alt key. This has two problems, one not really international and one really so:

  1. Not all keyboards have a Right Alt key; there are many laptops, for example, that do not (I admit that they themselves kind of stink internationally for reason #2!).
  2. Almost every language keyboard used in Europe and India and several keyboards used other places need that key to sensibly reach the AltGR shift state.

Take for example the German keyboard layout's base and AltGR shift states (cribbed screen shots of the GlobalDev Windows keyboard layouts page:


By the way, who thinks GlobalDev ought to have an RSS feed? I do! Russ, are you reading this post? :-)

Now generally, the keyboard does not have a good way to get to the AltGR functionality without that key (Ctrl+Alt is unwieldy for ordinary typing). German is a minor example, with a mere twelve assigned keystrokes (though someone who wanted to type a Euro sign might take exception at calling it a "mere" anything!), some of those other keyboards have many more assigned, and a few even have Shift+AltGR assignments as well.

Now of course there is a way to change the keystroke assignment here (item #9 in the Keyboard functionality, troubleshooting topic):

When the right ALT key is configured to be the host key, navigating through menus using only the keyboard does not work.

Cause:  On some keyboards, when the host key is the right ALT key, the Host key + ALT + menu accelerator does not work to access menus.

Solution:  You must change the host key to be something other than ALT or CTRL. For more information see, To change the host key used for Virtual PC.

And then that topic has the actual instructions:

To change the host key used for Virtual PC

  1. Open Virtual PC Console.
  2. On the File menu, click Options.
  3. Click Keyboard.
  4. In the Current host key box, click the key name to select it, and then, on the keyboard, press the key that you want to use as the host key.

    The name of the new host key is displayed in the Current host key box.


  • To open Virtual PC Console, on the host operating system, click Start, point to All Programs or Programs, and then click Microsoft Virtual PC.
  • The host key is used for several functions, including mouse control and providing CTRL key functionality in menu shortcuts.

Now we will ignore the tortuous nature of the instructions for a moment. Let us remember for a moment that up to 60% of Microsoft's market is outside of the US and that 70-100% of that majority do not want to use English a significant percentage of the time (numbers that will only get worse for English as products like MSKLC, ELKs, LIPs, and XP Starter Edition help to further expand the ability of people to read and write in their native language. In such an environment, is using the Right Alt key as a default setting here when large parts of the market for Microsoft products (most or all of which do not have a localized versions of Virtual PC 2004!) a smart choice?

I just checked, there is not an International English version of it, at present. I do see a note in a Virtual Server 2005 Evaluation FAQ about this:

Q. Is the Virtual Server 2005 Evaluation Kit available in languages other than English?

A. Localized versions of the Evaluation Kit may be available in some locales. We will release information about non-English versions of the Kit as it becomes available. However, until then, you are welcome to order the English-language version through this site.

There is also a note in the Virtual Server 2005 FAQ about this:

Q. Will localized versions of Virtual Server 2005 be made available?

A. Virtual Server 2005 will be available in English and Japanese. 

And it is true -- there is a localized Japanese version of Virtual Server 2005 (though not of Virtual PC 2004). Japanese thankfully does not have most of these problems though I believe I have seen a few Japanese laptops over the last few years that (hard pressed to fit the Hiragana/Katakana, English/Japanese, and Fullwidth/Halfwidth buttons) did not have a Right Alt key? :-)

Beyond having a better default being chosen, some work to try to detect the situation (on either end) and offer other options, such as altering the setting. Maybe allowing a shifted keystroke would also be a helpful option (currently you can only pick any one key). There are a lot of things that could be done here to make the situation better for the English version if additional localized versions are not planned, or in all versions if they are.


The other problem that comes up is the potential difference in layouts between the host and guest machine, and dealing with that difference in a way that is as intuitive as possible for users. This is of course a problem that Terminal Services has long had to deal with, and is not an easy one, either in the logon screen where options are admittedly more limited or once one is logged on, where they could potentially have interesting solutions they could architect.

But the Virtual PC solution is not the most original or intuitive of possible options. It is in item #7 in the Keyboard functionality, troubleshooting topic:

My keyboard supports multiple languages but certain characters are not working in a virtual machine.

Cause:  The guest operating system must be configured to support the language that contains the characters you want to use.

Solution:  Refer to the documentation for the guest operating system to configure support for the language you want to use.

Yikes! I guess that is a solution. But I can't help wondering if more could be done here. Now obviously Virtual PC is casting a much wider net than Terminal Services (I am sure we will see clients for Linux long before we would see servers!) but it seems like there might be some things that could be done if it is running a Windows OS, couldn't there be? Or maybe an explanation that there could not and more help on how to deal with the problem then one semi-hidden help question in an FAQ. :-(

Now I will keep on using Virtual PC, because frankly it still does rock, and a lot of the above can be explained by the fact that it is a product that Microsoft first picked up through acquiring another company, and perhaps future versions will work harder to help solve the issues now that the company that owns the product does have that larger focus.

But it definitely has some work to do in its next major version on the international front. :-)

And in the meantime it can serve to help application developers out there think hard about what they do with keyboard issues in their own applications, to avoid similar issues of greater or lesser scale....


This post is brought to you by "V" (U+0056, a.k.a. LATIN CAPITAL LETTER V)

# bahes$ on Monday, May 02, 2005 3:32 AM:

It does rock because it is simpler than any other VM. But it is not on Wmware level at all... I had memory problems throught test period and switched back to Wmware. Every time I started it VPC bugged me about lack of memory...strange problem even thought I have 512 Mb of RAM.
I hope VPC will get better :)

# MOO on Monday, May 02, 2005 3:55 AM:

VMWare is the only real option for virtualisation. VPC is a toy.

# Michael S. Kaplan on Monday, May 02, 2005 8:17 AM:

And how does VMWare handle the situation discussed in this artcle? Is it better, or worse?

# Kiliman on Monday, May 02, 2005 8:42 AM:

I haven't used international features in VMWare and I have to admit, that I've never used VPC, so maybe I'm not the best person to respond to your question.

However, with VMWare, once you install the VMWare tools in the guest OS, you can switch in and out of guest/host just by moving the mouse. If the mouse is in the guest window, then it has control. All keystrokes (except for Ctrl+Alt+Del) go to the guest OS. Move the mouse out of the window, and host has control.

I'm not sure if VPC has a similar feature.


# Michael Kohne on Monday, May 02, 2005 10:03 AM:

I'd rather they not get TOO clever. I think this product is one where MS shouldn't implement something that 'just works' to deal with the difference between host and virtual system - as a developer, I think I'd want to be able to be able to get into some wierd situations using this thing, and if you make it 'just work', you will likely take away some of the power.

Just a thought.

# Michael S. Kaplan on Monday, May 02, 2005 10:34 AM:

Well, I do agree with *that* -- no matter what they would do, there are three things that any feature would need:

1) The ability to configure what they are doing.
2) A way to send feedback on usage scenarios they might have missed

But as long as they have at least #3, then I would fully support them being as clever as they like here.

Its like FrontPage -- they used to kind suck in my opinion. But once they added a "don't screw with my HTML" setting, they were much cooler. :-)

# Heath Stewart on Monday, May 02, 2005 10:47 AM:

Did you consider throwing on host integration so you don't even have to worry about the Right Alt key? I think it has more ups than downs - just make sure you know where your mouse is before performing some action.

VPC does rock, though - that's for certain! I love the ability to set up a pristine install, copy the VHD file (the "hard drive" for the uninitiated) and be able to "wipe" my machine at any time and just copy the backup VHD file.

# Michael S. Kaplan on Monday, May 02, 2005 11:05 AM:

Well, I have a *lot* of different images, it would be a pain to do it on all of them. Though in fairness I would have mentioned it as a workaround if I had noticed it changed the behavior on the guest machines where I had installed it!

Or even better if those help topics had mentioned this fact. :-)

Cool tip in any case, thanks Heath!

# VMWare memory hack on Monday, May 02, 2005 11:15 AM:

VMWare Workstation 5 does a memory hack to get more performance increases if you check the used memory, its 512 or whatever you set it to and its normal usage as to be expected BUT if you check the memory GRAPH, its much much less, what gives?

Whats the trick? Whatever it is its sure increasing perf majorly.

# Mihai on Monday, May 02, 2005 5:07 PM:

I add my vote for this one:
"By the way, who thinks GlobalDev ought to have an RSS feed? I do! Russ, are you reading this post? :-)"

# Flavio on Monday, May 09, 2005 4:55 AM:

On Italian keyboards, you need the right Alt key to type @, #, [ and ], not to mention € of course. Not exactly a minor nuisance then.

By the way, VMware allows you to configure the key(s) used to get out of the VM as any combination of Ctrl, Shift and Alt. The default is Ctrl+Alt, but I prefer all three of them because Ctrl+Alt+F1 is useful to switch from X to a virtual console in Linux.

# krishna on Friday, May 27, 2005 9:52 AM:

how do i make my alt gr key work like my alt key; i m using windows 2000 professional os

# Michael S. Kaplan on Friday, May 27, 2005 10:33 AM:

Not really related, right?

You can't, unless you have a keyboard that does not define the shift state, like the US keyboard.

# Pikku orava on Wednesday, October 31, 2007 4:09 PM:

There is a work around:

Just use ASCII -kodes you get from number keys on the right side of keyboard. Example: chareacter " \ " comes from left Alt + 047.

I hope this helped. It helped me around the problem

# Pikku orava on Wednesday, October 31, 2007 4:18 PM:

oops, the right code for \ is Left Alt + 092

# healthinfo on Wednesday, April 02, 2008 1:06 PM:

Old post, still valid. Thanks, solved my trouble today, I couldn't connect to \\server\ since I couldn't type the char '\'.lol

referenced by

2008/01/17 Virtual PC + Word 2007 ≠ AltGr support?

go to newer or older post, or back to index or month or day