1) Embora de natureza simples, a lógica deste post é difícil de seguir para aqueles de nós sem um teclado AltGr para testar. Eu falo por mim mesmo, de qualquer forma ... por uma questão de compreensão, pode ajudar a esclarecer de qual script de duas linhas você está falando, seguido por uma lista de quais teclas você pressiona (e em que ordem), seguidas por uma lista do que resultados que você recebe. Em seguida, liste o próximo script, chaves e resultados. Ou talvez outros não precisem disso, mas foi um pouco difícil para mim seguir, embora eu acredite que você tenha todas as informações críticas listadas.
2) Você observou as reatribuições de teclas de atalho nos arquivos de ajuda? Eu notei duas coisas que você pode querer brincar. Primeiro é o uso de * como um modificador. O segundo é o uso de 'Up' para acionar em um movimento ascendente para enviar um movimento ascendente diferente (isto é, enviar um movimento ascendente para um modificador diferente). Veja a redefinição LWin listada em Hotkeys no arquivo de ajuda:
*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}
3) As coisas ficam presas às vezes e quando isso acontece, às vezes você pode trabalhar em torno dele enviando comandos 'Up' mesmo que a chave já esteja ativa. Tecnicamente, pode não ser necessário, mas às vezes funciona (e às vezes não funciona).
4) Pode (ou não) servir para procurar na lista do histórico de chaves através do menu Ver. Muitas vezes, você pode descobrir por que as coisas ficam presas ou por que elas não funcionam, observando as chaves de ordem serem processadas (isto é, a ordem em que estão listadas) e se são ou não ignoradas devido às várias razões listadas.
5) Como o exemplo de redefinição LWin mostra, você pode querer usar o comando 'Send' ou 'SendInput' para ter mais flexibilidade durante a solução de problemas (se você não precisar disso, é claro que pode ficar sem fazer o código mais limpo, mas não faz mal a nada). Por exemplo, usar um comando Enviar facilita a marcação de outro caractere ou pressionamento de tecla em uma única reatribuição de teclas de atalho, depois a ordem de acionamento na lista do histórico de teclas para ver o que acha que foi pressionado e em que ordem.
Se eu tivesse um desses teclados para testar, provavelmente tomaria um dos exemplos de duas linhas que você listou e o transformaria em uma reatribuição de chave de quatro linhas, à maneira do exemplo da reatribuição de LWin, em seguida, verificaria o que acontecendo no histórico chave. Eu poderia adicionar uma instrução de pausa também, a fim de pegá-la no ato e poder olhar o histórico de pressionamento de tecla até o ponto em que a pausa foi executada, o que excluiria o log de mostrar qualquer tecla modificadora sendo liberada.
Eu não tenho ideia se isso funcionaria, mas aqui está um resumo do tipo de coisa que você pode começar para fins de depuração.
*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
Send {LAlt Down}
Pause ; once the script is paused you can go look at Key History
Return