Hola.
En primer lugar ¿seguro ese código es javascript?
Y en segundo ... es cierto, hay varias maneras de imprimir (puedo agregar, además de los menúes de la barra, el del botón secundario del maus / ratón)
Si solamente quieres bloquear el teclado, el método de leer las teclas funciona, en sus diferentes versiones.
Si quieres disparar una función al imprimir, no hay (o no conozco) un evento compatible
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>Detecta impresión en IE / FF.</title>
<script type="text/javascript">
function estasImprimiendo() { alert("Inicia Impresión."); }
window.onbeforeprint = estasImprimiendo;
</script>
</head>
<body>
<h1>Aviso impresión.</h1>
</body>
</html>
Y si quieres avisar que la impresión está lista para enviarse,