utiliser les interruptions système.
utiliser les interruptions système.
J'aimerais savoir si il serait possible de créer une procédure et de la lancer sous interruption ( pour qu'elle s'exécute automatiquement à chaque frame ou boucle du système ) ... Un peu comme à l'époque sur Amiga lorsqu'on codait une routine sous interruptions softwares ....
Merci de me dire comment procéder pour mettre le procédure sous interruption et comment l'arréter ... si cela est possible bien sur
Merci de me dire comment procéder pour mettre le procédure sous interruption et comment l'arréter ... si cela est possible bien sur
Pour les interruptions je sais pas, mais dans ton cas un timer devrai faire l'affaire.
Petit essai:
Petit essai:
Code : Tout sélectionner
Structure timerarg
hwin.l
msg.l
idevent.l
systemtime.l
EndStructure
Global varglobale.l , timerarg.timerarg
Procedure fonctiontimer(hwin,msg,idEvent,systemtime);il faut toujours prendre 4 arguments
varglobale+1
timerarg\hwin=hwin;la fenêtre concernée (ici 0 car il n'y en a pas)
timerarg\msg=msg ;le message #WM_TIMER (aucun intérêt)
timerarg\idevent=idevent; l'identifiant du timer
timerarg\systemtime=systemtime; heure système en millisecondes
EndProcedure
#fois_par_seconde=20
If InitSprite() And OpenScreen(800,600,32,"Timer") And InitKeyboard()
timerid=SetTimer_(0,0,1000/#fois_par_seconde,@fonctiontimer())
Repeat
FlipBuffers()
ClearScreen(0,0,100)
If StartDrawing(ScreenOutput())
BackColor(0,0,100)
FrontColor(255,255,0)
Locate(20,20) : DrawText("Appuyez sur espace pour tuer le timer.")
Locate(20,50) : DrawText("varglobale "+Str(varglobale))
Locate(20,70) : DrawText("hwin "+Str(timerarg\hwin))
Locate(20,90) : DrawText("msg "+Str(timerarg\msg))
Locate(20,110) : DrawText("idevent "+Str(timerarg\idevent))
Locate(20,130) : DrawText("systemtime "+Str(timerarg\systemtime))
StopDrawing() : EndIf
ExamineKeyboard()
If KeyboardPushed(#pb_key_space) And timerid
KillTimer_(0,timerid)
timerid=0
EndIf
If KeyboardReleased(#pb_key_escape)
Break
EndIf
ForEver
EndIf
If timerid
KillTimer_(0,timerid)
EndIf
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
à coté de quoi ? de ton programme purebasic ou de ton OS ?
as tu un exemple dans un autre langage, c ou vb ou autre ?
j'ai trouvé un exemple d'interuption souris ici http://www.geocities.com/SiliconValley/ ... /mouse.txt. c'est de ca que tu parles ?
as tu un exemple dans un autre langage, c ou vb ou autre ?
j'ai trouvé un exemple d'interuption souris ici http://www.geocities.com/SiliconValley/ ... /mouse.txt. c'est de ca que tu parles ?
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
quel évènement souhaites-tu capter exactement ?
en général, pour une insertion de cd par exemple, on a un évènement qui arrive et qu'on peut récupérer soit dans un callback, soit avec WaitWindowEvent()
en général, pour une insertion de cd par exemple, on a un évènement qui arrive et qu'on peut récupérer soit dans un callback, soit avec WaitWindowEvent()
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
@Flype:
Je ne connais pas le C (c'est bien du C?), mais ton exempple commence par:
Je vais peut-être dire une connerie, mais tu es sûr que ce n'est pas un prog pour le DOS ?
J'ai cru comprendre que l'utilisation des interruption en 32 bits est nettement plus compliquée qu'en 16 bits (réel), et que c'est bien pour ça qu'on utilise plutôt les DLL de l'API
J'ai bien peur que Freddix soit en train de se casser la tête pour rien...
Je ne connais pas le C (c'est bien du C?), mais ton exempple commence par:
Si je ne me trompe pas, les prog en mode protégé ou virtuel utilisent le modèle mémoire "flat", non segmenté...NOTE: THIS EXAMPLE HAS TO BE COMPILED WITH LARGE MEMORY MODEL.
Je vais peut-être dire une connerie, mais tu es sûr que ce n'est pas un prog pour le DOS ?
J'ai cru comprendre que l'utilisation des interruption en 32 bits est nettement plus compliquée qu'en 16 bits (réel), et que c'est bien pour ça qu'on utilise plutôt les DLL de l'API
J'ai bien peur que Freddix soit en train de se casser la tête pour rien...
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
moi j'en sais rien justement... le code j'ai chercher dans google...
je sais qu'il utilise une interruption système / logicielle pour capturer les évenements souris. maintenant je demande juste si freddix a des exemples... qqchose de concret pour nous guider parceque je vois toujours pas exactement ce qu'il veut.
je sais qu'il utilise une interruption système / logicielle pour capturer les évenements souris. maintenant je demande juste si freddix a des exemples... qqchose de concret pour nous guider parceque je vois toujours pas exactement ce qu'il veut.
Je suis désolé mais je ne peux pas réveler l'objectif ... ( tant que le projet n'est pas finit , tout ce que je peux dire c'est que cela me servirat pour X4 ) ... mais j'ai besoin d'un truc qui soit géré comme la souris par exemple .... sans timer .... pas en thread ( car ca fait trop ramer le prog principal ) ... j'ai besoin que ce soit appelé à chaque Frame ...