Je voulais savoir si c'était possible de forcer le mode alpha-lock
C'est-à-dire que lorqu'on exécute la fonction ngetchx() et qu'on appuie sur le [7], par ex, que ça retourne 'g' (ou 103) au lieu de '7' (ou 55).
Pas besoin de forcer alpha-lock. Il suffit de comparer le code avec '7' en plus de la comparaison avec 'g'.
Euh non, en fait ça marchera pas, à moins de tester ça pour chacune des lettres :
dans mon prog, j'ai besoin d'écrire le caractère qui correspond à la touche pressée parmi les 26 lettres minuscules ou majuscules (52 possibilités, donc).
Sinon, je veux bien utiliser la fonction Getc (ou qqchose comme ça), mais je n'ai pas compris ce qu'il fallait mettre comme argument, dedans.
Il y a des programmes qui font ça pour pratiquement chaque lettre sans problèmes. Et puis il n'y a que 26 lettres à gérer, pas 52 (pour les majuscules, il faut appuyer sur [SHIFT] de toute façon.)
Mais bon, on va être gentil:
char AlphaLockSaveState;
void AlphaLockOn(void) {
if (*((*(long **)0xc8)-1)<=1155)
{AlphaLockSaveState=*((char *)*(*((*(short ***)0xc8)+0x96)+4)+0x1f);
*((char *)*(*((*(short ***)0xc8)+0x96)+4)+0x1f)=1;};
else
{_rom_call(void,(char*),481)(&AlphaLockSaveState);
};
};
void AlphaLockOff(void) {
if (*((*(long **)0xc8)-1)<=1155)
{AlphaLockSaveState=*((char *)*(*((*(short ***)0xc8)+0x96)+4)+0x1f);
*((char *)*(*((*(short ***)0xc8)+0x96)+4)+0x1f)=0;};
else
{_rom_call(void,(char*),482)(&AlphaLockSaveState);
};
};
void RestoreAlphaLock(void) {
if (*((*(long **)0xc8)-1)<=1155)
{*((char *)*(*((*(short ***)0xc8)+0x96)+4)+0x1f)=AlphaLockSaveState;};
else
{_rom_call(void,(char*),483)(&AlphaLockSaveState);
};
};
[edit]Edité par Kevin Kofler le 25-01-2002 à 18:14:14[/edit]