Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kann ein externes exe innerhalb der eigenen Anwendung laufen? (https://www.delphipraxis.net/213517-kann-ein-externes-exe-innerhalb-der-eigenen-anwendung-laufen.html)

Harry Stahl 10. Aug 2023 16:33

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Sherlock (Beitrag 1525495)
Da es wohl überlesen wurde, zitiere ich mich mal selbst und kann auch Günthers Beitrag nur fett unterstreichen:
Zitat:

Das Problem daran ist, das Du Dir damit die Hölle auf Erden (in Windows) schaffst. Folgendes funktioniert danach nicht mehr wie erwartet:
  • Dialoge des eingefangenen Programms sind nicht modal gegenüber der Host-Applikation, sie können also "versehentlich" in den Hintergrund geklickt werden, und damit hängt alles
  • Tooltips werden nicht mehr angezeigt
  • Resize-Events werden unzuverlässig bemerkt
  • Unter Umständen wird der Windows-Style ignoriert (habe ich aber nur selten gesehen)
Und das ist nur die Spitze des Eisbergs. Da gibt es noch so viele kleine Problemchen, die folgen - das will man einfach nicht freiwillig durchmachen.
Aber zum herumspielen ist es kurze Zeit ganz lustig.

Sherlock

Ja, wenn man es vermeiden kann, dann würde ich es auch nicht tun. Aber manchmal geht es halt nicht anders, bzw. man findet keine andere Lösung. Hier ein Beispiel, der anliegende Screenshot zeigt, wie ein Lazarus-Programm eine Delphi-App integriert, die eine FMX form anzeigt. Es war schon schwierig genug, mit Delphi dafür überhaupt eine Lösung zu entwickeln (Anzeige der FMX-Forms), aber mit Lazarus hätte ich das nicht hinbekommen. Also insofern ist das für mich eine legitime Möglichkeit auch mal solche Wege zu nutzen.

Andreas13 10. Aug 2023 21:52

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Hallo,
ich habe mit
Delphi-Quellcode:
BTMemoryModule.pas
von hier: https://github.com/dsplayer/memorymodule gute Erfahrungen gemacht. Allerdings habe ich damit nur eine DLL als Ressource in eine andere DLL gepackt und die Funktionen der "Huckepack-DLL" benutzen können. Es müßte auch mit einer EXE in EXE funktionieren.

skybibo 11. Aug 2023 06:35

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Hallo Andreas13,

mit solchen Techniken habe ich mich vor einigen Jahren auch mal befasst. Leider beschweren sich dann die meisten Vierenscanner, da solche Techniken auch von Trojanern verwendet werden. Sobald ein solches Programm zum Kunden geht, wird es dann schwierig.

Ich habe deshalb weitere versuche in dieser Richtung aufgegeben.

Gruß Bernd

Bernhard Geyer 11. Aug 2023 07:46

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Zitat:

Zitat von himitsu (Beitrag 1525481)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1525477)
AFAIK machen das alle modernen Browser unter Windows auch.

Die Browser machen es eher andersrum, also viele Teile (z.B. jeden einzelnen / mehrere Tabs) in eigene Prozesse auslagern, aber es dennoch innerhalb der Hauptform anzuzeigen.

Ok.
Dann bin ich von der Lösung die einige Zeit Adobe gemacht hat (als die Integration von Adobe Reader im IE im eigenen Delphi-Programm sehr instabil war) und ein früher genutztes ActiveX-Control es gemacht hatte (und dieses zweite ActiveX hat mich einige graue Haare gekostet, bis der Hersteller (big Player mit Mrd-Umsatz) diesen Ansatz stabil hin bekommen hatte.

Andreas13 11. Aug 2023 14:18

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Zitat:

Zitat von skybibo (Beitrag 1525511)
...mit solchen Techniken habe ich mich vor einigen Jahren auch mal befasst. Leider beschweren sich dann die meisten Vierenscanner, da solche Techniken auch von Trojanern verwendet werden.

Hallo Bernd,
anfangs hatte ich die Antiviren-Entwickler über die Fehlalarme informiert. Inzwischen ist es mir leid, auf die fehlerhafte Heuristik von Antivirenprogrammen Rücksicht zu nehmen, zumal selbst bei einigen technisch-mathematischen Berechnungsalgorithmen, mit denen ich mich beschäftige, immer wieder (Fehl-)Alarm geschlagen wird. Stattdessen benachrichtige ich die Anwender meiner Programme über diesen Sachverhalt. :-D

paule32.jk 12. Aug 2023 12:22

AW: Kann ein externes exe innerhalb der eigenen Anwendung laufen?
 
Hallo,

sofern es die Eigene Anwendung ist, könnte man doch den Quellcode übernehmen,
und diesen in einen TFrame packen.
Das TFrame läßt sich dann nach belieben in die Anwendung laden und ausladen.

TFrame verwende ich auch in meiner Delphi 7 Anwendung.

Beispiel:
Code:
// in Frame1.pas:
type
  TFrame1 = class(TFrame)
  ...
  end;
end.

// in MainApp.pas:
uses Frame1;
type
  TForm1 = class(TForm)
  public
    MyFrame: TFrame1;
  ...
  end.
...
procedure TForm1.OnCreate
begin
  MyFrame := TFrame1.Create(Panel1);
  MyFrame.Parent := Panel1;
  MyFrame.Align  := alClient;
  MyFrame.Color  := clYellow;
end;
procedure TForm1.OnShow
begin
  MyFrame.Visible := true;
end;
...
- man hat keinen Fenster-Rahmen und keine Titel-Leiste,
- man kann das Embeeded Formular im gleichen Projekt speichern,
- man kann das Formular im gleichen Projekt ändern (im Design).

Hope this helps
paule32


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.
Seite 2 von 2     12   

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