AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Messages abfangen/mitlesen

Ein Thema von Schwedenbitter · begonnen am 20. Jan 2016 · letzter Beitrag vom 15. Mai 2017
Antwort Antwort
SneakyBagels
(Gast)

n/a Beiträge
 
#1

AW: Messages abfangen/mitlesen

  Alt 15. Mai 2017, 21:30
Da das hier am besten reinpasst frage ich hier.

Wenn ich mit PeekMessage eine Message entgegennehme, ist nach abarbeiten des Codes der Aufruf von TranslateMessage und DispatchMessage dann zwingend erforderlich?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Messages abfangen/mitlesen

  Alt 15. Mai 2017, 21:35
Wenn ich mit PeekMessage eine Message entgegennehme, ist nach abarbeiten des Codes der Aufruf von TranslateMessage und DispatchMessage dann zwingend erforderlich?
Nein, zwingend ist das nicht. Nur, wenn du die jeweilige Funktionalität benötigst:
Zitat von TranslateMessage:
Translates virtual-key messages into character messages. The character messages are posted to the calling thread's message queue, to be read the next time the thread calls the GetMessage or PeekMessage function.
Zitat von DispatchMessage:
Dispatches a message to a window procedure. It is typically used to dispatch a message retrieved by the GetMessage function.
MSDN-Library durchsuchenPeekMessage entfernt die Nachricht allerdings nicht aus der Message-Queue. Wenn du das brauchst, dann nimm MSDN-Library durchsuchenGetMessage.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#3

AW: Messages abfangen/mitlesen

  Alt 15. Mai 2017, 22:11
GetMessage zusammen mit einem WM_QUIT am Ende klappt in der Tat besser als PeekMessage.
Ich verwende GetMessage innerhalb eines Threads und PostThreadMessage von außerhalb.
Muss ich die MessageQueue im Thread auch leeren?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#4

AW: Messages abfangen/mitlesen

  Alt 15. Mai 2017, 22:28
ACHTUNG: GetMessage und PeekMessage geben dir nur Messages von PostMessage raus.
SendMessage wird direkt innerhalb dieser Funktionen sofort verarbeitet.

Drum kommt bei Application.OnMessage und TApplicationMessageEvents.OnMessage auch nur PostMessage an.
Wer auch SendMessage wissen will, der braucht einen Message-Hook.

https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
WH_CALLWNDPROC and WH_CALLWNDPROCRET
WH_GETMESSAGE
WH_FOREGROUNDIDLE
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Mai 2017 um 22:34 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#5

AW: Messages abfangen/mitlesen

  Alt 15. Mai 2017, 22:34
Um an einen Thread zu senden nutze ich PostThreadMessage, hole dort die Messages mit GetMessage ab und entblocke den Thread am Ende seiner Laufzeit mit WM_QUIT und sicherherheitshalber WM_CLEAR.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz