AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi aufrufen einer Funktion eines schon laufenden Programmes
Thema durchsuchen
Ansicht
Themen-Optionen

aufrufen einer Funktion eines schon laufenden Programmes

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

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

aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:22
Hallo,

ich habe eine Datei daten.xxx und wenn ich diese Anklicke soll ein bestimmtes Programm 'DatenRecherchieren.exe' aufgerufen werden und eine bestimmte Funktion aufgerufen werden.

Das Programm läuft zu dem Zeitpunkt des Anklickens der Datei schon. Bisher wird dieses Programm noch einmal gestartet.

Wie kann ich eine bestimmte Funktion aus einem Programm aufrufen, das schon läuft? Ich hoffe, ihr könnt mir weiterhelfen

Gruss
Susanne


P.S.: Nützt mir dieser Teil in meinem Programm vielleicht?
Delphi-Quellcode:
Initialization
  mHandle:=CreateMutex(nil,True,'Programmname');
  if GetLastError=ERROR_ALREADY_EXISTS then
    Halt;

finalization
  if mHandle<>0 then
    CloseHandle(mHandle)
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#2

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:27
Meinst Du so ähnlich wie z.B. bei Word?

Ein Word-Dokument öffnen startet Word, wenn Word schon gestartet ist, öffnet Word das Dokument.

Das ist relativ einfach: Erstens muss Dein programm den Dateinamen als Parameter annehmen. Dann kannst Du eine Verknüpfung zwischen Deinem Dateityp und Deinem programm machen. Somit wird Dein programm schon geladen, wenn Du so eine Datei öffnest.

Dann schau mal, wie man verhindern kann, das mehrere Instanzen eines Programmes laufen. An der Stelle wirds etwas tricky: Anstelle das Programm sofort zu schliessen wenn es schon läuft, musst Du dem anderen Programm eine Nachricht schicken (guck mal unter Sendmessage), und den Dateinamen an das bereits laufende Programm senden (dessen handle hast Du ja bereits vom gucken ob es schon läuft).

Dann musst Du nur noch auf so eine Nachricht reagieren und dann die Datei öffnen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:33
Ich hab mal eine Komponente gemacht, die mehrere Instanzen verhindert und die Parameter an die erste Instanz übergibt. Ich kann sie dir schicken, wenn Du willst.

Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:40
Schick sie nicht, sondern poste sie besser hier.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:44
Stimmt, noch besser . Hab sie nur nicht bei mir. Werde sie wahrscheinlich am Abend reinstellen.

Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#6

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:46
Und wenn schon, dann bitte gleich in die CodeLib und hier einen Verweis reinsetzen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Susanne

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

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 09:58
das wäre ganz toll wenn du mir die Komponente geben würdest, egal ob gepostet oder gemailt, danke schon mal

Susanne



und noch mal anders gefragt: wenn ich jetzt z.B. eine Fremde Anwendung habe, die läuft und diese soll für einen bestimmten Dateityp registriert sein.

In meiner Dokumentation, dass die Endung zzz für die fremde Anwendung als dde-Server registriert wäre.

Wenn ich nun die Datei per Doppelklick starte will, soll eine Recherche mit den in der Datei enthaltenen Daten durchgeführt werden. Mit rechtem Mausklick habe ich der Datei gesagt, sie soll mit der fremden Anwendung geöffnet werden.

Eingeloggt habe ich mich schon als User und bekomme dann die Meldung, dass die Login-Komponente nicht reagieren würde, habe ich dann was falsch gemacht, oder liegt es am fremden Programm?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: aufrufen einer Funktion eines schon laufenden Programmes

  Alt 18. Aug 2004, 19:03
OK, hier die Komponente

Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  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 15:15 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