Probier's mal mit einer Nachricht mit einem Wert von
WM_USER + x
, denn zu
WM_USER kann man lesen, dass alles von 0 bis WM_USER-1 für das System reserviert ist.
Vielen Dank, Dalai!
Natürlich probierte ich die Botschaften einfach aus und stellt fest, daß man die Botschft 0, die 1 nicht und dann wieder ab der 2 versenden kann.
Leider ist das Problem nicht so einfach lösbar, jedenfalls nicht mit WM_USER+1.
Evtl. könnte auch die "User Interface Privilege Isolation" (UIPI) ab Vista dahinterstecken, jedenfalls wird diese auf
MSDN erwähnt. Mir will jedoch nicht einleuchten, daß diese Isolation die Botschaften innerhalb ein- und desselben Prozesses blockiert.
Dazu schrieb ich auf die Schnelle ein weiteres Programm (Anhang), das das Botschaftsenden (nur von
VCL-Thread zu erzeugten Zusatzthreads) demonstriert. Das funktioniert sowohl prozeßintern als auch prozeßübergreifend (das Programm dazu zweimal starten) auch in Windows 7, und zwar z.B. auch mit den Botschaften 0 und 2, aber man kann auch andere Werte probieren. Dazu einfach die ausgegebenen Thread-IDs (Mitte) dann entsprechend "über Kreuz" in die verschiedenen Formulare in die rechten Edits kopieren. Komisch, in dem Programm funktioniert es.