Compris, ça fonctionne maintenant!
C'était dans la bonne direction, mais le code posait quelques problèmes. En particulier, le LShift n'était pas vérifié si c'était faux, la première déclaration était donc toujours vraie.
J'ai également ajouté le support pour Ctrl + Tab.
*tab::
{
if (GetKeyState("LAlt", "P") AND GetKeyState("LShift", "P") = false) {
Send {LControl up}{LAlt down}{tab}
KeyWait, tab
} else if (GetKeyState("LAlt", "P") AND GetKeyState("LShift", "P")) {
Send {LControl up}{LShift down}{LAlt down}{tab}
KeyWait, tab
} else if (GetKeyState("LCtrl", "P") AND GetKeyState("LShift", "P") = false) {
Send {LAlt up}{LCtrl down}{tab}
KeyWait, tab
} else if (GetKeyState("LCtrl", "P") AND GetKeyState("LShift", "P")) {
Send {LAlt up}{LShift down}{LCtrl down}{tab}
KeyWait, tab
} else if (GetKeyState("LWin", "P") AND GetKeyState("LShift", "P") = false) {
Send {LWin down}{tab}
KeyWait, tab
} else if (GetKeyState("LWin", "P") AND GetKeyState("LShift", "P")) {
Send {LShift down}{LWin down}{tab}
KeyWait, tab
} else {
send {tab}
}
return
}
~LAlt Up::
{
send {LAlt up}
return
}
~LCtrl Up::
{
send {LCtrl up}
return
}
LAlt::LCtrl
LCtrl::LAlt