Первая часть возможна, но сложна, потому что несколько кодов виртуальной клавиши (VK) будут отображаться на один и тот же код сканирования (в зависимости от состояния shift / ctrl / alt клавиатуры).
Я не уверен, что вы подразумеваете под «именем клавиши», но если вы ссылаетесь на физическую раскладку клавиатуры, то для вашего следующего шага вам нужно будет сделать некоторые предположения о расположении клавиши на основеСтандартные физические раскладки клавиатуры (101 клавиша, 102 клавиши и т. д.).
См. мой ответ на этот вопрос , где приведен пример кода и более подробное описание.