Je pense que ça peut se faire. Il faut installer un "keybord hook" et intercepter tous les évènements "touche enfoncée", "touche relâchée", quelque soit la touche. Et retourner systématiquement une valeur indiquant simultanément l'état de toutes les touches, sous forme d'un masque binaire, dans lequel chaque bit représente une touche, et la valeur 1 signifie "touche enfoncée" et 0 signifie "touche relâchée".
KGF.dll contient déjà un keybord hook pour des besoins particuliers, et je pourrais assez facilement étendre ce principe pour te faire une routine qui fait ce que tu souhaites.
Patiente quelques jours, ça viendra.