neurosupherot
:
sinon, pour afficher infini, est ce que printf("\0xBE") marcherait?
Oui.
-y a t il un moyen de faire une code pour quitter un programme à tout moment, en appuyant sur une touche?
Oui, tu peux intercepter ON à l'aide de l'auto-int n°6, passer en mode utilisateur et faire un
longjmp ou
ER_throw,
mais ce n'est vraiment pas propre (et il faut savoir exactement ce que tu fais, sinon tu vas tout faire planter). Je te conseille plutôt de tester ta touche à tous les endroits qui pourraient durer longtemps (dans une boucle, par exemple).
-coment, pendant un scanf, ne pouvoir qu'écrire des chiffres et les opérateurs +,-,*,/,etc
Tu ne peux pas. Tu peux rejeter les mauvaises entrées après en utilisant des trucs comme
%[0-9+*/-], mais tu ne contrôles pas la routine d'entrée. Si tu veux une routine d'entrée perso,
sscanf est là pour ça. Et au passage, les fonctions
*scanf sont le meilleur moyen de créer des programmes
énormes, à éviter
à tout prix! (Franchement, je les ai mises seulement parce que j'avais marre d'entendre râler "Où est scanf?".)
-comment faire, pour désactiver les fonctions comme 2nd, alpha, etcau bas de l'écran de la calto,dans un prog, car qd ya une image, ca, affiche 2nd en bas, et ca chiffone tout :/
De manière propre: on ne peut pas.
Avec un hack: cf. les routines
hidekstat de Olle Hedman.
-Quel sont les moyens de faire passer une sécurité:
exemple: je transfere un mon prog sur la calto de qqn, et il faut qu'il entre un code secret pour faire fonctionner le programme:
le code sera alors sauvgardé sous un autre fichier qui restera dans sa calculette.
En, gros, entrer un code secret ds le prog, mais l'entrer que la premiere fois, comme ca si il est bon, le code secret n'est plus demandé au début du prog.
Il n'y a pas vraiment de méthodes fiables et surtout propres (sans écrire n'importe quoi n'importe où en mémoire) pour ça. Si tu utilises des fichiers, ce sera facilement hackable.
bidoo :
ca sert a que dalle de mettre ca dans un fichier qui peut etre lu par nimporte qui !
voila un code qui tue tou
unsigned char code_secret(void)
{
clrscr();
if(*(unsigned char*)(0x40000)!=99)
[...]
c'est un exemple, je te conseille pas de l'utiliser si t'a des tsr ou un kernel
et ca marche que pour un seul prgm (prgm clé ? )
1. Beurk! Beurk! Beurk!
2. Tu écris par dessus des vecteurs importants. (Tu n'as même pas pris la peine de vérifier que les adresses de mémoire en question étaient libre avant de faire ta connerie.)
3. Ton code ne marche pas sur Titanium.
Résumé: Poubelle!
bidoo :
en fait c'est idiot ce que j'ai fait...
integre ca dans ton prgm :
static unsigned char mon_futur_code [5]={0,0,0,0,0};
[...]
Beurk! Ne marche pas si le programme est archivé et/ou compressé. Poubelle!
bidoo :
sinon la meilleure methode c'est de faire son propre rowread en asm qui ne prend que certaine touche
Beurk!
ngetchx sert à quoi selon toi? Refaire un interpréteur de touches est un gaspillage de place, en plus d'être dégueulasse si tout ce qu'on veut est rentrer des caractères avec les combinaisons de touches prévues.
soit tu fais ca :
void *kbq = kbd_queue ();
unsigned short key=0;
for(;; )
{
if (ST_flags & ST_2ND) ST_modKey (ST_NONE);
if (ST_flags & ST_DIAMOND )ST_modKey (ST_NONE);
if (ST_flags & ST_SHIFT ) ST_modKey (ST_NONE);
if (ST_flags & ST_ALPHA) ST_modKey(ST_NONE);
if (!OSdequeue (&key, kbq)) ; // dans key, tu a le meme code que si tu avais utilisé ngetchx()
}
Ne fonctionne pas. Ça vire l'indicateur quand c'est trop tard, donc ça l'efface, mais le morceau d'image aura aussi été effacé. Il faut sauvegarder et redessiner la zone de l'indicateur dans le handler de l'AI1.
Franchement, bidoo, arrête de donner de mauvais conseils!
Et au passage, c'est idiot de virer les indicateurs, du coup l'utilisateur ne saura plus s'il a appuyé sur un modifiant ou pas! Les indicateurs sont là pour une raison! Qu'ils soient moches quand on a une image, d'accord, mais ce n'est pas une raison valable de les supprimer. Si l'utilisateur ne veut pas détruire l'image, il n'a qu'à ne pas appuyer sur un modifiant.