AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Text zur anderer Anwendung senden
Thema durchsuchen
Ansicht
Themen-Optionen

Text zur anderer Anwendung senden

Ein Thema von Sugar · begonnen am 18. Nov 2013 · letzter Beitrag vom 20. Nov 2013
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.400 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 14:41
Hi,

wenn Du an die Sourcen beider Programme ran kommst, dann bieten sich für Kleinigkeiten die Windows Messages an, für größere "Kleinigkeiten" die Windows MMF.

Hast Du mit einem dieser Teile schon mal was gemacht? Wenn ja: Was waren da genau die Probleme, wenn nein, dann schau es dir mal an...

GRüße
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#2

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 14:58
Hi,

wenn Du an die Sourcen beider Programme ran kommst, dann bieten sich für Kleinigkeiten die Windows Messages an, für größere "Kleinigkeiten" die Windows MMF.

Hast Du mit einem dieser Teile schon mal was gemacht? Wenn ja: Was waren da genau die Probleme, wenn nein, dann schau es dir mal an...

GRüße
Ja, ich habe mit Windows Messages schon gearbeitet, in einem anderen Projekt bediene ich ebenfalls ein anderes Programm dass die so übertragenen Eingaben überprüft. Das war dahingehend einfach, weil die Eingabekomponenten klar erkennbar waren und mit Handle und SendMessage zurecht kamen.

Die Anwendung die ich jetzt bedienen muss setzt mit jedem Tatsendruck einen SELECT ab (warum auch immer so kompliziert weiß ich nicht) - ich muss also die Auftragsnummer in einzelne Zeichen zerlegen und nach unc nach absenden. Größer wird die Sache nicht, wenn ich diese Eingabe umgesetzt bekomme fehlt nur noch ein klick zum Aufru. Und der steht schon
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#3

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 16:07
Hallo,

einzelne Zeichen sende ich so:

  SendMessage(FDBGridHandle,WM_CHAR,30,0);
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 17:14
MSDN-Library durchsuchenWM_COPYDATA

sollte dir weiterhelfen.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#5

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 17:20
Danke für die Hinweise! Mein Kernproblem aber bleibt, wie ich einen Text ind die entsprechenden Integerparamter umwandle die WM_COPYDATA und WM_CHAR erwarten?

Zudem denke ich, dass das Grid, das ja die Tastatureingabe des externen Programms verarbietet explizit auf Key UP/Down reagiert....
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: Text zur anderer Anwendung senden

  Alt 18. Nov 2013, 23:20
Dann schicke ihm doch noch eines, dafür gibt es ja auch Messages. Vom "Klang" her würde ich schätzen, dass es Sinn machen könnte das letzte Zeichen des Textes aus dem WM_COPYDATA raus zu lassen, und per WM_KEYDOWN/UP nachzuliefern. Wenn die Routine des Zielprogramms wirklich pro Char ausgeführt werden soll, kann man damit ja auch im Zweifel den gesamten Text kleckerweise rüber schubsen. Oder ich habe das Problem missverstanden; auch immer eine Option
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#7

AW: Text zur anderer Anwendung senden

  Alt 19. Nov 2013, 07:07
Nein, das Problem ist schon korrekt verstanden. Ob ich den String am Ende wirklich auch "zerlegen" muss oder nicht ist mir eiegtnlich egal, zum testen müsste ich nur wissen, wie man einen String mit WM_CHAR "versendet"

Beispiel: Mein Suchbegriff ist "123/01"

Den Ausdruck zerlege ich in 1-2-3-/-0-1 und würde ihn dann folgendermaßen senden wollen:

sendmessage(handle,wm_char,ord('1'),0);
sendmessage(handle,wm_char,ord('1'),0);
...
Zum testen in Ordnung.

Nur, wie wanlde ich die einzelnen Zeichen so um, dass ich in den Ausdruck buchstabenweise übergeben kann also eine Schleife durchlaufe und jedes einzelne Zeichen von 1 bis Ende übergebe?

In Etwa so:

sendmessage(handle,wm_char,ord(Copy(MeinSTtring,1,1)),0);
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:47 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-2025 by Thomas Breitkreuz