Я не уверен, что вы имеете в виду, создавая сочетания клавиш, возможно, как грубую систему передачи сообщений?
Во всяком случае, я полагаю, что типичный метод разрешения внешнего управления / создания сценариев - это предоставление API для вашей программы. В некоторых случаях мне приходилось делать что-то похожее, я обычно создаю интерфейс, содержащий все открытые методы, и затем мой основной класс приложения реализует этот интерфейс. Возможно, вам потребуется сделать этот COM видимым, чтобы позволить не .NET-средам получить доступ к интерфейсу, да. Хотя IIRC это просто вариант сборки, по крайней мере в VS 2010 это простой вариант в свойствах проекта.
Конечно, в зависимости от того, насколько сложен ваш инструмент или какие именно данные и функции вы хотите предоставить, вам может потребоваться предоставить несколько открытых интерфейсов, к которым можно получить доступ из скрипта, но часто достаточно только 1. Одним из преимуществ использования интерфейсов является то, что в этом случае вы все еще можете реализовать его в одном классе.