Benutzerdefinierte Windowsnachrichten

28/12/2007 - 09:47 von Martin Bauer | Report spam
moin Ächsbàd'n, guten Rutsch und frohe Weihnachten 2008 !

Ich habe ein Hook auf Tastatur und Mause um über Tastenanschlàge und
Mausebewegungen
informiert zu werden.Dafür wurde eine DLL mit entsprechenden
Windowsfunktionen erstellt
und in VFP mit Bindevents gearbeitet. Nun kommt es zu dem Effekt das VFP ab
und zu abstürzt
wenn die Konstante WM_USER + 2 verwendet wird für die Nachricht. Es wurde
dann mit
WM_APP + 2 getestet wobei VFP sofort abstürzt nach dem Start/Initalisierung
der IDE. Ich
vermute VFP verwendet selbst benutzerdefinierte Nachrichten - liegt ja
durchaus nahe. Hat wer
Quellen für weitere Informationen wenn es tatsàchlich so sein sollte wie ich
vermute ? Besten Dank.

gRuß Martin, *reusper, hust* - wàre froh wenn nur Feinstaub rauskommen würde
XD
 

Lesen sie die antworten

#1 Olaf Doschke
28/12/2007 - 11:10 | Warnen spam
WM_APP + 2 getestet wobei VFP sofort abstürzt nach dem
Start/Initalisierung
der IDE. Ich
vermute VFP verwendet selbst benutzerdefinierte Nachrichten - liegt ja
durchaus nahe. Hat wer
Quellen für weitere Informationen wenn es tatsàchlich so sein sollte wie
ich
vermute ? Besten Dank.



Ich wüßte nicht, aber kann natürlich sein.
Ist dann die Frage, ob die die Runtime diese
Messages auch intern verwendet.

Hiernach: http://support.microsoft.com/kb/86835/en-us
ist es besser mit WM_APP+x zu arbeiten.

Wie wàre es denn, RegisterWindowMessage() zu nutzen?

o = CreateObject("winmessagehandler")

Define Class winmessagehandler as Custom

Procedure Init()
DECLARE INTEGER RegisterWindowMessage in Win32Api String @
Declare INTEGER SendNotifyMessage in Win32APi Integer hWnd, Integer Msg,
Integer wParam, Integer lParam

DECLARE INTEGER GetLastError in Win32Api
lcString = "myapp message1"+CHR(0)
lnMessage = RegisterWindowMessage(@lcString)
IF lnMessage = 0
lnError = GetLastError()
Else
? "defined message",lnMessage
BindEvent(0,lnMessage,this,"handlemessage")

SendNotifyMessage(_vfp.hwnd,lnMessage,0,0)
EndIf

Procedure handlemessage()
Lparameters hWnd as Integer, Msg as Integer, wParam as Integer, lParam as
Integer

? "received message",msg
EndProc

EndDefine

Tschüß, Olaf.

Ähnliche fragen