Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Nachricht für PostMessage festlegen ? Wie ? (https://www.delphipraxis.net/168315-nachricht-fuer-postmessage-festlegen-wie.html)

Premaider 15. Mai 2012 08:58

Nachricht für PostMessage festlegen ? Wie ?
 
Hey Leute,
ich habe endlich eine funktionierende Postmessage-Funktion hinbekommen
Delphi-Quellcode:
PostMessage(HWND_BROADCAST,WM_Nachricht, 0, 0 );
Jetzt muss ich nurnoch meine Nachricht in WM_Nachricht festlegen. Wie mache ich den sowas ?
Habe davon in der Schule noch nichts gehört

sirius 15. Mai 2012 09:01

AW: Nachricht für PostMessage festlegen ? Wie ?
 
1. Du sendest an alle! Willst du das?
2. Was heißt für Dich "Nachricht festlegen"? Du kannst für die zwei Nullen zwei frei wählbare Integers nehmen. Das ist dann deine Nachricht, mehr geht nicht.

Bernhard Geyer 15. Mai 2012 09:01

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Wenns Anwendungsübergreifend funktionieren soll sollte man RegisterWindowsMesssage verwenden.

Premaider 15. Mai 2012 09:06

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Ist Postmessage da völlig falsch ?
Ich will beim Drücken des Hotkeys einen
Text senden. So als würde ich den mit der Tastatur eingeben. Nur
wenn möglich "instant" also sofort ohne viel delay.

DeddyH 15. Mai 2012 09:11

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Wie, Text senden? An wen denn? Irgendwer muss ja damit auch etwas anfangen können.

Premaider 15. Mai 2012 09:13

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Wenn man denn ein Fenster festlegen muss, dann wird das Minecraft.
Ich kann dann ja mit Findwindow den Handle festlegen

DeddyH 15. Mai 2012 09:15

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Nur dass Minecraft sehr wahrscheinlich Deine Message nicht kennt und deshalb nicht verarbeitet. Was genau willst Du denn erreichen?

Premaider 15. Mai 2012 09:17

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166582)
Nur dass Minecraft sehr wahrscheinlich Deine Message nicht kennt und deshalb nicht verarbeitet. Was genau willst Du denn erreichen?

Meine Message wäre dann zum Beispiel
'T Hallo' und dann Enter (Wie?)

wenn t gedrückt wird, öffnet sich der Chat Hallo ist die Nachricht und mit Enter sendet man die

DeddyH 15. Mai 2012 09:22

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Was soll denn dann passieren? Ich kenne Minecraft nur dem Namen nach, aber ist das nicht ein Spiel auf Basis von DirectX?

Premaider 15. Mai 2012 09:24

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166584)
Was soll denn dann passieren? Ich kenne Minecraft nur dem Namen nach, aber ist das nicht ein Spiel auf Basis von DirectX?

Ich habe keine Ahnung. Aber wenn erst ein Tastendruck von T simuliert wird dann der Text eingegeben wird und dann Enter gedrückt wird sollte es funktionieren. Es gibt auf unserem multiplayer Server Befehle wie "/Time day". Das müsste dann einfach der Text sein

himitsu 15. Mai 2012 09:26

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Im Bereich von WM_USER bis (kurz vor) WM_APP kannst du eigene Messages definieren.
Man könnte aber auch MSDN-Library durchsuchenRegisterWindowsMesssage verwenden.

z.B.
Delphi-Quellcode:
const WM_DEINE_MESSAGE = WM_USER+100;

Premaider 15. Mai 2012 09:29

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von himitsu (Beitrag 1166587)
Im Bereich von WM_USER bis (kurz vor) WM_APP kannst du eigene Messages definieren.
Man könnte aber auch MSDN-Library durchsuchenRegisterMessage verwenden.

z.B.
Delphi-Quellcode:
const WM_DEINE_MESSAGE = WM_USER+100;

Verstehe nicht genau was du meinst. Was müsste ich denn dann bei PostMessage einsetzten ? Kannst du mir bitte
ein Beispiel geben ?

DeddyH 15. Mai 2012 09:29

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Das ist ja spitze :thumb:, man registriert einfach eine Message und schon kann man Minecraft fernsteuern. :roll:
Was man mal versuchen könnte: Minecraft den Eingabefokus geben und per EnterText in den Tastaturpuffer schreiben. Vielleicht geht' s ja.

himitsu 15. Mai 2012 09:33

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Mit MSDN-Library durchsuchenRegisterWindowsMesssage kann man sich über einen windowsglobalen eindeutigen Namen eine Message-ID automatisch generieren lassen.

Im Bereich von WM_USER kann man sich selber benuterdefinierte komponenteninterne Messages-IDs definieren.

MSDN-Library durchsuchenWM_KEYDOWN und Co sind vordefinierte Messages, welche man direkt verwenden kann, ohne sie selber zu definieren.



Und diese Message-IDs mußt/kannst du dann für SendMessage verwenden.
Sobald der Emfpänger mit diese ID und ihre "Funktion" kennt, kann er damit was anfangen und sonstwas damit machen (die Message verarbeiten).

Premaider 15. Mai 2012 09:42

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von himitsu (Beitrag 1166593)
Mit MSDN-Library durchsuchenRegisterWindowsMesssage kann man sich über einen windowsglobalen eindeutigen Namen eine Message-ID automatisch generieren lassen.

Im Bereich von WM_USER kann man sich selber benuterdefinierte komponenteninterne Messages-IDs definieren.

MSDN-Library durchsuchenWM_KEYDOWN und Co sind vordefinierte Messages, welche man direkt verwenden kann, ohne sie selber zu definieren.



Und diese Message-IDs mußt/kannst du dann für SendMessage verwenden.
Sobald der Emfpänger mit diese ID und ihre "Funktion" kennt, kann er damit was anfangen und sonstwas damit machen (die Message verarbeiten).

Ich frage mich nur wie ich dem ganzen dann den Name auch zuweise.
So ?
Delphi-Quellcode:
WM_Nachricht:=RegisterWindowMessage('Hallo');
Als was muss ich dann WM_Nachricht festlegen ? Weil so kennt er den Begriff ja nicht

DeddyH 15. Mai 2012 10:02

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Ihr könnt mich gerne weiter ignorieren, trotzdem bin ich mir sicher, dass das ganze RegisterWindowMessage-Geraffel nichts bringt, wenn die Gegenseite diese Message überhaupt nicht verarbeitet. Aber ich wollte das auch nur noch einmal gesagt haben.

Premaider 15. Mai 2012 10:09

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166590)
Das ist ja spitze :thumb:, man registriert einfach eine Message und schon kann man Minecraft fernsteuern. :roll:
Was man mal versuchen könnte: Minecraft den Eingabefokus geben und per EnterText in den Tastaturpuffer schreiben. Vielleicht geht' s ja.

Ich will dich garnicht ignorieren. Jedoch schien mir die andere Methode leichter. Was ist denn der Tastaturpuffer oder wie bringt man Minecraft in den Eingabefokus ? Wie baue ich die Funktion von EnterText bei mir ein, sodass ich weiß wo ich meinen Text hineinsetzten soll?

Bernhard Geyer 15. Mai 2012 10:10

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166601)
Ihr könnt mich gerne weiter ignorieren, trotzdem bin ich mir sicher, dass das ganze RegisterWindowMessage-Geraffel nichts bringt,

Denke ich auch. War ja nur hinweise wenn man Systemweit (an andere eigene Apps) was senden will.

Zitat:

Zitat von DeddyH (Beitrag 1166601)
wenn die Gegenseite diese Message überhaupt nicht verarbeitet. Aber ich wollte das auch nur noch einmal gesagt haben.

ich denke der Threadersteller solle mal etwas genauer und umfangreicher schreiben was er eigentlich machen will.
So werden doch die Glaskuglen etwas überstrapaziert ...

Premaider 15. Mai 2012 10:18

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1166605)
Zitat:

Zitat von DeddyH (Beitrag 1166601)
wenn die Gegenseite diese Message überhaupt nicht verarbeitet. Aber ich wollte das auch nur noch einmal gesagt haben.

ich denke der Threadersteller solle mal etwas genauer und umfangreicher schreiben was er eigentlich machen will.
So werden doch die Glaskuglen etwas überstrapaziert ...

Okay nochmal:
1. T drücken
2. Text eingeben
3. Enter drücken

Und das alles sofort wenn ich meinen Hotkey (Hab ich schon fertig) gedrückt habe.

:?

Bernhard Geyer 15. Mai 2012 10:29

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von Premaider (Beitrag 1166606)
Okay nochmal:
1. T drücken
2. Text eingeben
3. Enter drücken

Und das alles sofort wenn ich meinen Hotkey (Hab ich schon fertig) gedrückt habe.

:?

Wo drückst du "T"? I eigener7anderer Anwendung? Wenn andere: Welche?
Was soll nach <Enter> passieren? Text in Bestimmtes Feld oder bestimmte Anwendung geschickt werden?

Premaider 15. Mai 2012 10:33

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1166607)
Zitat:

Zitat von Premaider (Beitrag 1166606)
Okay nochmal:
1. T drücken
2. Text eingeben
3. Enter drücken

Und das alles sofort wenn ich meinen Hotkey (Hab ich schon fertig) gedrückt habe.

:?

Wo drückst du "T"? I eigener7anderer Anwendung? Wenn andere: Welche?
Was soll nach <Enter> passieren? Text in Bestimmtes Feld oder bestimmte Anwendung geschickt werden?

Bei Minecraft ist das extrem einfach. Wenn Minecraft geöffnet ist (im Vordergrund) und man T drückt öffnet sich
der Chat. Wenn man jetzt eine Nachricht eingibt und dann Enter drückt können die anderen dann meine Nachricht lesen, oder wenn die Nachricht ein Befehl wie "/time day" ist wird zum Beispiel die Zeit zu Tag gesetzt. Wenn man Enter drückt wird das ganze einfach an den Minecraft-Server gesendet

Morphie 15. Mai 2012 10:35

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Er will einfach eine Art Makro schreiben, das ihm automatisch die Keyboard-Tasten
t
h
a
l
l
o
<return>

an die Minecraft anwendung schickt.

Richtig? :-)

DeddyH 15. Mai 2012 10:41

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Man könnte ja ein Testprogramm schreiben, das über einen Button einen Timer aktiviert. Dieser Timer schreibt per EnterText in den Tastaturpuffer und disabled sich wieder. Bei entsprechend hohem Intervall bliebe genügend Zeit, zwischen dem Drücken des Buttons und dem Timer-Event das Minecraft-Fenster selbst zu aktivieren. Und dann einfach mal schauen, was passiert.

Premaider 15. Mai 2012 11:05

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Jetzt müsste ich nurnoch das mit EnterText verstehen. Wo ich meinen Text denn einfügen muss ^^

Zitat:

Zitat von Morphie (Beitrag 1166609)
Er will einfach eine Art Makro schreiben, das ihm automatisch die Keyboard-Tasten
t
h
a
l
l
o
<return>

an die Minecraft anwendung schickt.

Richtig? :-)

GENAU !

DeddyH 15. Mai 2012 11:09

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Delphi-Quellcode:
procedure EnterText(AText: String);

Wo muss Dein Text wohl hin?

Premaider 15. Mai 2012 11:25

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166622)
Zitat:

Delphi-Quellcode:
procedure EnterText(AText: String);

Wo muss Dein Text wohl hin?

Da wo EnterText steht ? :D
Ne Spaß, jetzt weiß ich es ^^
Wie gebe ich da denn Enter an ?

Also der Text wird richtig eingegeben doch er öffnet den Chat nicht.
Entertext('t'); Geht also nicht ???
Da muss ich anscheid doch ein Tastendruck simulieren ?
P.S. Alles gute zu 21.000 Beiträgen ^^

DeddyH 15. Mai 2012 12:10

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Hast Du es mit einem abschließenden sLineBreak oder #13 versucht? Tastendrücke musst Du nicht simulieren, da EnterText direkt in den Tastaturpuffer schreibt, das ist, als ob Du den Text selbst tippen würdest.

DasZiesel 15. Mai 2012 12:49

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Ich denke, der Threadersteller sucht in etwa so etwas.

http://swissdelphicenter.ch/de/showcode.php?id=220

Ist zwar schon etwas älter, sollte aber noch funktionieren.

schöni 15. Mai 2012 12:51

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von DeddyH (Beitrag 1166639)
Hast Du es mit einem abschließenden sLineBreak oder #13 versucht? Tastendrücke musst Du nicht simulieren, da EnterText direkt in den Tastaturpuffer schreibt, das ist, als ob Du den Text selbst tippen würdest.

So ist "EnterText()" in Delphi schon vordefiniert? Wenn ja, ab welcher Version?

DeddyH 15. Mai 2012 12:55

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Nein, ist es nicht. Das gibt es hier in der CodeLib (Link hatte ich irgendwo in diesem Thread gepostet).

jaenicke 15. Mai 2012 13:02

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Zitat:

Zitat von schöni (Beitrag 1166642)
So ist "EnterText()" in Delphi schon vordefiniert? Wenn ja, ab welcher Version?

Nein, es ist nicht vordefiniert, deshalb wurde es ja oben verlinkt.

Jedenfalls wird das ganze vermutlich in einem Spiel wie Minecraft ohnehin nicht gehen, da das wohl kaum Eingaben aus Windows Messages verarbeitet, sondern vermutlich DirectInput oder ähnliches verwendet. Sonst würde das gar nicht ordentlich laufen.
Und um das dort umzusetzen muss man schon deutlich mehr Aufwand betreiben.

Premaider 15. Mai 2012 15:52

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Also wenn der Chat offen ist funktioniert es. Sonst nicht
Der Tastencode für Enter ist ja #13
Wie ist der für t ? Man findet immer nur die mit VK_.. oder $..

himitsu 15. Mai 2012 16:38

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Delphi-Quellcode:
Ord('T')
?
Das steht übigens auch in der Hilfe (MSDN) zu den VK_-Codes (virtuellen Tastencodes), also daß es für VK_A bis VK_Z keine vordefinierten Konstanten gibt.

Und wer ein Delphi mit VCL-Quellcode hat, der findet es auch in den Quelldateien, da wo die anderen VK_-Codes stehn, dort steht da, wo VK_A sein sollte, wie man es sich selbst erstellt. (bzw. das wurde so aus den C-Quellcodes übernommen)

Premaider 15. Mai 2012 18:36

AW: Nachricht für PostMessage festlegen ? Wie ?
 
Minecraft hat anscheind andere Keys. Wenn EnterText(IRGENDETWAS) ist wird in Minecraft I gedrückt :(
Das muss doch irgendwie anders gehen >.<

Klappt auch nicht mit dem -> http://forum.delphi-treff.de/showthr...uck-simulieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz