AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auslösen einer Funktion aus fremder Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Auslösen einer Funktion aus fremder Anwendung

Ein Thema von Susanne · begonnen am 19. Aug 2004 · letzter Beitrag vom 20. Aug 2004
Antwort Antwort
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

Auslösen einer Funktion aus fremder Anwendung

  Alt 19. Aug 2004, 13:39
Hallo,

vielleicht hat ja jemand von euch eine Idee, wie das Problem gelöst werden könnte.

Ich habe also mein Delphi-Programm A, von hier aus starte ich ein anderes Programm B und führe eine Suche aus. Am Ende wird mir dann eine Liste angezeigt.

Das war das, was bisher passiert. Nun möchte ich aber mit der Maus irgendeinen Eintrag aus der Liste auswählen und anschliessend durch irgendwas z.B. den Klick auf einen Button, eine Funktion in meinem Delphi-Programm A auslösen?

Aber wie kann ich das bloss realisieren?

Gruss
Susanne
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Auslösen einer Funktion aus fremder Anwendung

  Alt 19. Aug 2004, 13:41
Entweder mit Sendmessage oder du stellst eine Verbindung zwischen den Programmen mit Client und Server her.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Auslösen einer Funktion aus fremder Anwendung

  Alt 19. Aug 2004, 13:59
und wie stelle ich das an?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Auslösen einer Funktion aus fremder Anwendung

  Alt 19. Aug 2004, 14:04
wenn du das ganze über Client-Server löst dann musst du im Programm A einen server haben und im Programm B einen Client. Der client verbindet dann zum server (also zu Programm A und sendet halt die Befehle die du dann im Programm A auswerten musst). Wenn du mit Sendmessage das ganze bewerkstelligen willst musst du von Programm B aus Speicher in Programm A reservieren, dann in diesen Speicher reinschreiben und dann mit SendMessage Programm A sagen das es aus dem neuen Speicherbereich was lesen soll, und das muss dann ausgewertet werden. Ich finde das mit dem Client-Server am einfachsten, ist jedoch nicht das eleganteste. Das mit dem Speicher reservieren im anderen Process ist etwas komplizierter, jedoch solltest du über die suche zu beiden Themen hier einiges finden. Du kannst die Informationen auch in eine "memory mapped file" schreiben und von beiden Anwendungen darauf zugreifen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Auslösen einer Funktion aus fremder Anwendung

  Alt 19. Aug 2004, 14:38
ich hab mal nen kleines Beispielprogramm geschrieben welches Text von Anwendung B nach Anwendung A sendet per "Memory Mapped Files"
Angehängte Dateien
Dateityp: zip text_von_b_nach_a_senden.zip (408,0 KB, 399x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Auslösen einer Funktion aus fremder Anwendung

  Alt 20. Aug 2004, 07:06
Problem hierbei ist aber auch, dass Anwendung B nicht von mir ist und ich nur ganz wenige Funktionen habe, mit denen ich darauf zugreifen kann.

Ich kann z.B. ein Dokument aus der Liste nehmen und öffnen und dessen Daten auslesen. Aber ich weiss nicht, wie ich herausbekomme, welches Element ich in der Liste markiert habe und wie ich eine Funktion in meinem Programm auslösen kann.


...Ich habe mal ein wenig rumgestöbert. Wäre das ein Ansatz? Kann ich eventuell registerHotKey ?


Ich würde mir dann vorstellen, das ich an einer bestimmten Position in meinem Programm stehe, habe dort die Liste erzeugt und sie wird mir angezeigt. Direkt danach möchte ich eine Schleife haben, wo gewartet wird, ob die fremde Anwendung geschlossen wird oder ob Shift und w gedruckt wurde. Wurde Shift und w gedrückt mache etwas bestimmtes, ansonsten verlasse einfach diese Schleife.

Wäre dies eine Lösung? Kann ich auch nur die NAchrichten eines bestimmten Programmes abfangen?
Susanne
  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 19:59 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