Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tastenanschläge an Trillian senden (https://www.delphipraxis.net/22736-tastenanschlaege-trillian-senden.html)

Luzifer666 22. Mai 2004 16:55


Tastenanschläge an Trillian senden
 
Hallo Community!

Ich bin gerade dran ein kleines Plugin zum Chatprogramm Trillian zu programmieren und wollte daher fragen, wie man Tastenanschläge (also beliebeige Strings) vom Delphiprog aus an Trillian senden kann. Kann mir jemand weiterhelfen?

Gruss
Luzi

alcaeus 22. Mai 2004 17:00

Re: Tastenanschläge an Trillian senden
 
Du musst das Handle des Trillian-Eingabefensters herausfinden und dann eine Nachricht (WM_KEYPRESS oder sowas) an das Handle senden. Zur Nachricht müsste die Suche eigentlich was bringen..

phXql 22. Mai 2004 17:56

Re: Tastenanschläge an Trillian senden
 
wenn du trillian pro benutzt, das hat eh ein plug-in interface für ausgehende messages. musst mal die hilfe von trillian durchstöbern, da is ne doku über die schnittstelle drin...

Luckie 22. Mai 2004 18:00

Re: Tastenanschläge an Trillian senden
 
Zitat:

Zitat von alcaeus
Du musst das Handle des Trillian-Eingabefensters herausfinden und dann eine Nachricht (WM_KEYPRESS oder sowas) an das Handle senden. Zur Nachricht müsste die Suche eigentlich was bringen..

Ich würde SendMessage mit WM_SETTEXT nehmen. ;)

Luzifer666 22. Mai 2004 22:50

Re: Tastenanschläge an Trillian senden
 
Ok ... hab etwas herumgeforscht und bin jetzt auf folgenden Syntax gestoßen, der Luckies Vorschlag entspricht ;) :

Delphi-Quellcode:
SendMessage(hWndControl, WM_SETTEXT, wParam, lParam);
hWndControl ist klar (mit "FindWindow") ...
WM_SETTEXT ist auch klar ...

Nur mit wParam und lParam komm ich nich so recht klar, wie verbau ich die? :/

Danke aber schonmal für bisherige schnelle Hilfe! :)

Mirilin 22. Mai 2004 23:10

Re: Tastenanschläge an Trillian senden
 
:hi:

Die PSDK sagt
Parameters

wParam
This parameter is not used.

lParam
Pointer to a null-terminated string that is the window text.


mfg Tobais

Luzifer666 23. Mai 2004 11:25

Re: Tastenanschläge an Trillian senden
 
ok ... setz ich also wParam 0 ...
Und lParam ist die Eingabe, wie?

Der Text soll per Edit eingegeben werden, wie schreib ich das dann?

phXql 23. Mai 2004 12:18

Re: Tastenanschläge an Trillian senden
 
SendMessage(hWndControl, WM_SETTEXT, 0, Edit1.Text);

Luzifer666 23. Mai 2004 12:34

Re: Tastenanschläge an Trillian senden
 
isses wohl doch nich

muss integer sein :/

ich brauch einen sogenannten "0-termininierten string" ...

phXql 23. Mai 2004 12:37

Re: Tastenanschläge an Trillian senden
 
integer? nen null-terminierter string is auch kein integer ^^

Sharky 23. Mai 2004 12:39

Re: Tastenanschläge an Trillian senden
 
Zitat:

Zitat von phXql
SendMessage(hWndControl, WM_SETTEXT, 0, Edit1.Text);

Du übergibst hier nicht den Pointer zu dem String sondern den String selber. Oder?

SendMessage(hWndControl, WM_SETTEXT, 0, @Edit1.Text);

Luzifer666 23. Mai 2004 12:42

Re: Tastenanschläge an Trillian senden
 
Soderle jetz hab ichs mal mit nem @ versucht, dann stand da: Variable erforderlich, also hab ich eine Variable eingesetzt jetz steh da: Inkompatible Typen: 'Integer' und 'Pointer'.

SirThornberry 23. Mai 2004 12:49

Re: Tastenanschläge an Trillian senden
 
einfach mal hilfe angucken und bissl die suche bemühen würde helfen...
Delphi-Quellcode:
  SetWindowText(handle, PChar(Edit1.Text));
oder so wie du es machen willst
Delphi-Quellcode:
  SendMessage(handle, WM_SETTEXT, 0, Integer(Edit1.Text));
ganz correkt soltle es dann so aussehen
Delphi-Quellcode:
  SendMessage(handle, WM_SETTEXT, 0, Integer(PChar(Edit1.Text)));
wobei alles funktioniert

mirage228 23. Mai 2004 12:49

Re: Tastenanschläge an Trillian senden
 
Hi,

versuchs mal mit

Delphi-Quellcode:
SendMessage(hWndControl, WM_SETTEXT, 0, Integer(PChar(Edit1.Text)));
mfG
mirage228

SirThornberry 23. Mai 2004 12:51

Re: Tastenanschläge an Trillian senden
 
@Mirage228: Das Casten nach PChar kann eignetlich weg gelassen werden da ja dann eh wieder nach integer gecastet wird - aber so isses die verständnismäßig beste form. Und ich war schneller :mrgreen:

mirage228 23. Mai 2004 12:55

Re: Tastenanschläge an Trillian senden
 
Zitat:

Zitat von SirThornberry
@Mirage228: Das Casten nach PChar kann eignetlich weg gelassen werden da ja dann eh wieder nach integer gecastet wird - aber so isses die verständnismäßig beste form. Und ich war schneller :mrgreen:

Wirklich?

Ich dachte ein direkter Cast von einem String --> Integer ergibt die ASCII Codes (Integer('A') = 65 z.B.) und bei Integer(PChar(Edit1.Text)) wird doch die Adresse (also der Pointer) in einen Integerwert umgewandelt...

mfG
mirage228

SirThornberry 23. Mai 2004 12:59

Re: Tastenanschläge an Trillian senden
 
nee, mit dem cast "Integer()" bewirkst du ja auch nur das die variable als Integer angesehen wird. Wenn du zum beispiel versuchst
Delphi-Quellcode:
var ab: array[0..2] of Char;
begin
  Integer(ab);
wird das nicht gehen weil es incompatible typen sind.
Ein String ist ja eigentlich auch nur ein Pointer deswegen kann man den casten.
oberes beispiel geht aber nicht zu casten weil "array[0..2] of Char" eine andere Structur im speicher hat als ein Integer

Du kannst ja mal
Delphi-Quellcode:
 showmessage(inttostr(sizeof(string)));
probieren. da wird immer 4 ausgegeben weil ein string ein Pointer ist

Luzifer666 23. Mai 2004 12:59

Re: Tastenanschläge an Trillian senden
 
tschuldigung :oops:
der Parameter hat mich nur so frustriert dass ich hingeschmissen hatte :/

naja das wollte ich wissen, vielen dank!

noch eine frage: wie spreche ich das "edit1" des Chatprogramms an?

SirThornberry 23. Mai 2004 13:03

Re: Tastenanschläge an Trillian senden
 
@Luzifer: Neue Frage neuer Thread. Allgemein kann man deine Frage allerdings mit "über das Handle des Edit's" beantworten

Luzifer666 23. Mai 2004 13:15

Re: Tastenanschläge an Trillian senden
 
Gut, dann eben neuer Thread...

Danke an alle für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 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