Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fremde Anwendung in eigener Anwendung laufen lassen. (https://www.delphipraxis.net/36546-fremde-anwendung-eigener-anwendung-laufen-lassen.html)

gmarts 21. Dez 2004 15:24


Fremde Anwendung in eigener Anwendung laufen lassen.
 
Hallo,

Ich möchte eine fremde Anwendung in einem Formular meiner eigenen Anwendung ausführen.
Wie wird es gemacht bzw. nach welchen Stichwörter muss ich suchen?

MfG GM

Klarabella 21. Dez 2004 15:32

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Hab folgendes dazu gefunden (ist aber zum Thema VB - dürfte in Delphi ähnlich funktionieren):

hier
Zitat:

Re: Fremdanwendung in eigenem VB-Programm
Man muss ja nicht gleich die komplette Excel-Application kidnappen. Es gibt: "Spreadsheets". Schon mal davon gehört?
Und auch noch das unglückliche Ole-Control.

Um die Excel-Application zu kidnappen ist das relativ einfach so zu bewerkstellingen:

1. hWnd der Excel-Main-Frame ermitteln. Das ist das MDI-Rahmenwindow von Excel.
2. Mittels SetParent die hwnd von E-M-F der eigenen Form zuweisen.
3. MoveWindow aufrufen und Excel nimmt in der Form Platz :)

Das ist aber nur reine Fensterverwaltung. Die Excel-Application ist dennoch völlig selbstständig, sprich: Du kannst sie über deren Objektmodel steuern, da Excel ja eine ActiveX-Komponente ist.
Selbst hab ichs bisher noch nicht gemacht - extern starten kannst du Programme über ShellExecute...!

//edit: sollte mit anderen Programmen (außer Excel) ziemlich genauso klappen...

gmarts 21. Dez 2004 16:03

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank Klarabella. So was in der Art habe ich schon probiert. Funktionier leider nicht, wenn die Fremdanwendung aus mehreren Fenstern besteht.


Also im Prinzip soll mein Formular so tun, als wäre es der Desktop. Die Fremdanwendung soll dies ebenfalls so "verstehen".


Mal ein Bild zum besseren Verständnis:

arbu man 21. Dez 2004 16:17

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Was willst du damit erreichen ?

gmarts 21. Dez 2004 16:23

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
@arbu man: Ich möchte mir eine Appbar basteln. Auf der sollen z.B. Winamp, Texteditor, Taschenrechner, etc. liegen und zwar bereits ausgeführt.

arbu man 21. Dez 2004 18:09

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Delphi Praxis

Versuch mal das der Quellcode von DieHardMan, der lässt die Form Oben am Bildschirmrand auftauchen. Alle anderen Anwendungen weden dann unterhalb angezeigt.
:thumb:

gmarts 21. Dez 2004 22:38

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Zitat:

Zitat von arbu man
Versuch mal das der Quellcode von DieHardMan, der lässt die Form Oben am Bildschirmrand auftauchen. Alle anderen Anwendungen weden dann unterhalb angezeigt.

Was du beschreibst, ist das Verhalten einer Appbar. Doch wie kann ich aus ihr eine Art "Container" für fremde Anwendungen machen?

Der Code von DieHardMan beschreibt Screensnaping, wobei die Form ab einer gewissen distanz automatisch an einen Rand andockt.

gmarts 23. Dez 2004 13:05

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Frohe Weihna...... äh ...*push*

Joe24 23. Dez 2004 13:13

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Ermittle mit GetWindowThreadProcessId das Fenster-Handle des Hauptprozesses.

Finde alle untergeordneten Fenster mit EnumChildWindow

Setze die Eingenschaft Parent der ermittelten Fenster mit SetParent auf das
Fenster-Handle deines Progs. Damit hast du alle Fenster der Anwendung gecaptured.

p.s.
GetWindowThreadProcessId, EnumChildWindow und SetParent sind Windows-API Funktionen.

gmarts 23. Dez 2004 13:22

Re: Fremde Anwendung in eigener Anwendung laufen lassen.
 
Danke, werde ich gleich mal probieren!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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