Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD9] Equivalent fonction Temporisation

7 réponses
Avatar
Eric Laurent
Bonjour,

Quelle fonction API puis-je employer sous Windev 9 pour remplacer la
fonction Multitâche() et générer l'équivalent de la fonction
Temporisation() de Windev 10 et 11 ?

- Pourquoi ai-je besoin de cette fonction ?
1) Parce que avec le code suivant sous Windev 9, 10 ou 11:
......
TANTQUE PAS FinDuProgramme
PoolingLecteur
Multitâche(-1)
FIN
.......
L'application occupe 98% de la CPU

Alors qu'avec ce code sous Windev 10 ou 11,
......
TANTQUE PAS FinDuProgramme
PoolingLecteur
Temporisation(0,tempoSourisEtClavier)
FIN
.......
L'application occupe +-1% de la CPU

2)Mon programme doit impérativement être en Windev 9 car il utilise
d'autres modules ecrits dans cette version.

Merci d'avance.

--
Eric Laurent
nospam.laurent.systel@wanadoo.fr
(enlever nospam.)

7 réponses

Avatar
Eric Laurent
C'est bon, ne cherchez plus, j'ai trouvé comment procéder.
J'utilise l'API GetMessage.
Si vous êtes intéressé par son utilisation, écrivez-moi en privé, je
vous transmetrai les sources.

--
Eric Laurent

(enlever nospam.)
Avatar
Pierre BOUSQUET
je veux bien

Eric Laurent avait soumis l'idée :
C'est bon, ne cherchez plus, j'ai trouvé comment procéder.
J'utilise l'API GetMessage.
Si vous êtes intéressé par son utilisation, écrivez-moi en privé, je vous
transmetrai les sources.



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
//
Il se trouve que Eric Laurent a formulé :
C'est bon, ne cherchez plus, j'ai trouvé comment procéder.
J'utilise l'API GetMessage.
Si vous êtes intéressé par son utilisation, écrivez-moi en privé, je vous
transmetrai les sources.



Tu as posé une question en public, cela aurait été bien que ta
"trouvaille" soit également postée en public...
Avatar
regis.scotto
Salut Eric, Salut a tous,

[le Thu, 01 Mar 2007 14:29:48 +0100]
[dans "fr.comp.developpement.agl.windev"]
[le message ayant pour sujet : "Re: [WD9] Equivalent fonction
Temporisation"]
[Eric Laurent ] écrivait :

C'est bon, ne cherchez plus, j'ai trouvé comment procéder.
J'utilise l'API GetMessage.
Si vous êtes intéressé par son utilisation, écrivez-moi en privé, je
vous transmetrai les sources.



Et pourquoi pas en faire beneficier tout le monde, c'est si secret que
cela ? :-(

Bien amicalement,

Regis SCOTTO.

--
http://blog.bonifacio.com/
Avatar
Eric Laurent
Je ne pensais pas que cela interessait quelqu'un car je n'avais aucune
réponse à ma question (d'ailleurs je n'ai pratiquement jamais de
réponse aux questions que je pose).
Mais devant tant de demandes, voici la méthode à utiliser:

1) Mettre dans le code d'initialisation du projet

MSG est une structure
hwnd est un entier
GMessage est un entier sans signe
wParam est un entier
lParam est un entier
time est un entier
pt est un entier
FIN
StrMes est un MSG


2)Créer la procédure globale Temporisation

PROCEDURE Temporisation()
RetourFonction est booléen
lpMsg est un entier=&StrMes
hWnd est un entier=Handle()
wMsgFilterMin est un entier sans signe=0
wMsgFilterMax est un entier sans signe=0

RetourFonction=API("USER32","GetMessageA",lpMsg,hWnd,wMsgFilterMin,wMsgFilterMax)
SI RetourFonction=Vrai ALORS
RetourFonction=API("USER32","TranslateMessage",lpMsg)
RetourFonction=API("USER32","DispatchMessageA",lpMsg)
FIN


3) Il ne reste plus qu'à remplacer dans le code Multitâche(-1) par
Temporisation()


Cordialement,

--
Eric Laurent

(enlever nospam.)
Avatar
Romain PETIT
Dans son message précédent, Eric Laurent a écrit :
Bonjour,

Quelle fonction API puis-je employer sous Windev 9 pour remplacer la fonction
Multitâche() et générer l'équivalent de la fonction Temporisation() de Windev
10 et 11 ?

- Pourquoi ai-je besoin de cette fonction ?
1) Parce que avec le code suivant sous Windev 9, 10 ou 11:
......
TANTQUE PAS FinDuProgramme
PoolingLecteur
Multitâche(-1)
FIN
.......
L'application occupe 98% de la CPU



Bizarre... jamais eu ce problème de CPU avec WD7.5 et le multitache...
As-tu essayé un Multitache() (sans temporisation) ?

Un MultitacheRepeint() pouvait-il faire l'affaire sinon ?

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Eric Laurent
Romain PETIT a exprimé avec précision :

Bizarre... jamais eu ce problème de CPU avec WD7.5 et le multitache...
As-tu essayé un Multitache() (sans temporisation) ?

Un MultitacheRepeint() pouvait-il faire l'affaire sinon ?



Bien sur j'ai essayé et ça ne fonctionne pas.

--
Eric Laurent

(enlever nospam.)