AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fremde Anwendung in eigener Anwendung laufen lassen.
Thema durchsuchen
Ansicht
Themen-Optionen

Fremde Anwendung in eigener Anwendung laufen lassen.

Ein Thema von gmarts · begonnen am 21. Dez 2004 · letzter Beitrag vom 23. Dez 2004
Antwort Antwort
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#1

Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 15:24
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
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Klarabella

Registriert seit: 28. Sep 2004
59 Beiträge
 
#2

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 15:32
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...
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 16:03
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:
Miniaturansicht angehängter Grafiken
so_121.jpg  
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#4

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 16:17
Was willst du damit erreichen ?
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 16:23
@arbu man: Ich möchte mir eine Appbar basteln. Auf der sollen z.B. Winamp, Texteditor, Taschenrechner, etc. liegen und zwar bereits ausgeführt.
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#6

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 18:09
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.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 21. Dez 2004, 22:38
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.
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 23. Dez 2004, 13:05
Frohe Weihna...... äh ...*push*
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Joe24

Registriert seit: 21. Dez 2004
Ort: Berlin
51 Beiträge
 
#9

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 23. Dez 2004, 13:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Fremde Anwendung in eigener Anwendung laufen lassen.

  Alt 23. Dez 2004, 13:22
Danke, werde ich gleich mal probieren!
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  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 08:51 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