Я в своём эмуляторе терминала разбираю скан-коды клавиш:
Код:
		case WM_SYSKEYDOWN:
		{
			word uScan = HIWORD(lParam);
			uScan &= 0x1FF;
Код:
		case WM_KEYDOWN:
		{
			word uScan = HIWORD(lParam);
			uScan &= 0x1FF;
У главной клавиши <Enter> код 28, у <NumPadEnter> код 284.

Хук нужен только для передачи окну скан-кодов клавиш VK_LWIN, VK_RWIN, VK_APPS, VK_SNAPSHOT и VK_NUMLOCK и отмены (при необходимости) передачи этих кодов в драйвер клавиатуры Windows. Скан-коды всех остальных клавиш передаются через сообщения WM_KEYDOWN и WM_SYSKEYDOWN совершенно стандартно.