Contexto: Nos jogos RTS, edifícios e unidades importantes podem muitas vezes ser agrupados usando uma combinação Ctrl+(0-9). Isto, combinado com as teclas de atalho do jogo, torna a 'produtividade' do jogo (ou seja, APM, EPM) extremamente eficaz.
Como desenvolvedor, trabalho com vários aplicativos, cada um com teclas de atalho independentes. Embora Alt-Tab seja uma excelente maneira de fazer isso, além de 4 ou 5 aplicativos torna-se menos eficiente do que simplesmente clicar no aplicativo desejado na faixa inicial.
O que eu quero: quero poder atribuir dinamicamente teclas de atalho aos programas e desvincular a tecla de atalho assim que o programa for fechado. Por exemplo, quando o Windows é iniciado, atribuo um '0' ao VS2008 por meio de um pressionamento de tecla CTRL+0, que vincula o VS2008 a '0' enquanto o programa estiver ativo. Se o VS2008 estiver fechado, a tecla de atalho será liberada. Estou ciente de como configurar teclas de atalho estáticas, mas considero isso limitante.
Pergunta: Seria melhor tentar implementar isso no nível do sistema operacional (ou seja, utilizando o AutoIT ou a funcionalidade integrada do Windows 7) OU programaticamente (ou seja, o vb.Net cria o seu próprio)?