Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.468 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Probleme mit PostThreadMessage in Multithreading-Programm ab Vista

  Alt 16. Nov 2015, 20:38
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.
Angehängte Dateien
Dateityp: zip ThreadMessage.zip (86,2 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat