PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Intercepter un évènement avec WNUSER
Intercepter un évènement avec WNUSER
Débuté par Jérôme, 14 sep. 2006 19:36 - 2 réponses
Posté le 14 septembre 2006 - 19:36
Bonjour,

Nous voudrions intercepter des évènements propres à un périphérique qui demande d'utiliser le "message privé" WM_USER + 0x300

Nous avons écrit:

EXTERN "WINCONST.WL"
WM_NumMessage est un entier
WM_Message est une chaîne ASCIIZ sur 128 = ""
gsEvent est un entier = 0
WM_Message = WM_USER + 0x300

WM_NumMessage = AppelDLL32("USER32.DLL","RegisterWindowMessageA",&WM_Message)

gsEvent=Evénement("GetEvent", "*.*",WM_NumMessage)

Problème:

Le numéro du message est le 50040 mais Windows ne l'intercepte pas. La procédure ne détecte pas ce numéro de message...

Quelqu'un aurait-il une idée?

Cordialement,

Jérôme
Posté le 15 septembre 2006 - 10:37
Bonjour,

tu n'as pas besoin de faire le RegisterWindowMessageA.

un simple Evenement ("GetEvent", "*.*", WM_USER+0x300)
devrait marcher.

En espérant t'avoir aidé
Marc
Posté le 15 septembre 2006 - 11:36
Bonjour,

Sachant que j'ai besoin de ne faire communiquer qu'une seule application (enfin le périphérique) avec mon appli Windev, c'est vrai que "RegisterWindowMessageA" n'était pas utile. Mais nous avions déjà utiliser cette solution, sans succès.

Peut-être qu'un extrait de l'exemple du SDK Philips en anglais pourrait t'aider à mieux comprendre le problème:

/* MCI control message posted to the specified window handle */
// (because of compatibility to Win95 this value should be greater than WM_USER + 0x100)
#define MM_MCI_CONTROL (WM_USER + 0x300)

/* Control commands */
/* Transferred in the LOWORD of dwParam1 */
#define MCICTRL_CMD_ERROR (WORD) 1

Nous avons fait:

EXTERN "WINCONST.WL"
Evénement("GetEvent", ".*",WM_USER + 0x300)

On a même essayer de définir une constante au départ comme ceci:

CONSTANTE
MM_MCI_CONTROL=WM_USER + 0x300
FIN
Puis ;
Evénement("GetEvent", ".*",MM_MCI_CONTROL)

Malheureusement, l'évènement n'est toujours pas détecté par l'application Windows!

Aurais-tu un conseil ou une suggestion qui pourrait nous mettre sur la voie?

Merci d'avance,

Jérôme