AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Exe in c#-Anwendung starten

Ein Thema von egal · begonnen am 30. Okt 2024 · letzter Beitrag vom 31. Okt 2024
Antwort Antwort
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#1

Delphi-Exe in c#-Anwendung starten

  Alt 30. Okt 2024, 09:35
Hallo zusammen,

ich muss eine eigene VCL-Delphi-Anwendung vorübergehend in einer C#-Anwendung starten.
Die Ladezeiten der Delphi-Anwendung sind ziemlich lang, deswegen war die Idee auf c#-Seite einen wait-Indikator oder sowas einbauen, man weiß aber da nicht, ob Delphi-Anwendung bis zu Ende geladen/gestartet wurde.
Wie kann man aus Delphi-Anwendung kommunizieren, dass die Ladezeit vorbei ist, Form wurde geladen und auf c#-Seite es empfangen/auslesen?
Danke!
  Mit Zitat antworten Zitat
Papaschlumpf73
Online

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi-Exe in c#-Anwendung starten

  Alt 30. Okt 2024, 09:44
Man könnte auf der C#-Seite mit FindWindow(...) warten, bis das Fenster da ist. Wobei die Frage wahrscheinlich in einem C#-Forum besser aufgehoben wäre.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi-Exe in c#-Anwendung starten

  Alt 31. Okt 2024, 10:13
Ich würde eine Mutex als Semaphore nutzen.

CreaeteProcess oder SHellexecuteEX liefert dir ja auch in .net das Process handle.
So lange das handle valide ist läuft das Programm das du gestartet hast noch.
Und wenn du es gezielt beenden willst kannst du im aufrufenden Programm auch noch das Handle nutzen um es zu töten.

Um mittzuteilen ,dass es noch lädt, könnte das delphi programm eine Mutex erzeugen und diese abräumen wenn es mit dem Laden fertig ist (Beim ersten Form aktive oder so).
Das C# programm kann prüfen ob in windows diese Mutex existiert.
Es ist quasi ein abgewandelter Mechanismus den man noramlerweise verwendet um zu verhindern das ein Prgramm zweimal gestartet wird.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi-Exe in c#-Anwendung starten

  Alt 31. Okt 2024, 15:18
Wie wäre es schlicht mit Windows Messages? Die Delphi-Anwendung kann das entsprechende Handle schlicht als Parameter übergeben bekommen. Dann schickt sie dorthin im einfachsten Fall eine bestimmte Message (RegisterWindowMessage) und als Parameter Integerwerte, die den Ladefortschritt (prozentual, bestimmte Fortschrittspunkte als ID, ...) enthalten. Dann kann man auch gleich den Ladefortschritt anzeigen und nicht nur eine Warteanimation.
Sebastian Jänicke
AppCentral
  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 16:02 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