When I test my Silverlight 2 app in Firefox, when Silverlight has focus, I have no problem receiving every key press via the Page.KeyDown event.
When I test it in Internet Explorer 7, I can only get keyboard events that the browser doesn't already handle. HOWEVER, I can override those same keyboard events in javascript.
For instance, Ctrl + D. I can override this in javascript by doing the following, but I can't do the same thing in Silverlight!!
function initKeyHandling(){ document.attachEvent("onkeydown", keydown); }
function keydown(e) { printToTextbox('Keydown ', e); return false; }
...
initKeyHandling();
Furthermore, my attempts to forward the events from Javascript to Silverlight have failed. My javascript keyboard event handlers never even get fired when Silverlight has focus.