exe-Datei in Fenster einbinden

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Caro
User
Beiträge: 1
Registriert: Sonntag 11. März 2007, 13:31

Sonntag 11. März 2007, 14:06

Hallo!

Seit einigen Monaten versuche ich mich mit wxPython. Ich habe keine großartigen Programmierkenntnisse, aber in diesem Forum habe ich bisher immer irgendwo die Antworten auf meine Fragen gefunden.

Jetzt habe ich aber folgende Frage: Ist es überhaupt möglich, eine exe-Datei, z.B. iTunes.exe, in ein Fenster einzubinden?

Ich habe mir sowas vorgestellt wie das MDIWindow in der wxPython Demo und mit „New Window“ ruft man statt dem Programm ScrolledWindow halt das Fenster von iTunes auf.

Vielen Dank schon mal

Caro
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Sonntag 11. März 2007, 16:22

Caro hat geschrieben:Ist es überhaupt möglich, eine exe-Datei, z.B. iTunes.exe, in ein Fenster einzubinden?
Hallo Caro!

Willkommen im Python-Forum!

Ich glaube nicht, dass du das Fenster eines anderen Programmes in dein Programm einbinden kannst. -- zumindest nicht mit vertretbarem Aufwand. Und auf keinen Fall plattformunabhängig.

mfg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Sonntag 11. März 2007, 18:21

Mmmh, ich kenne ITunes nicht, deswegen kann ich dir nicht sagen, wie du diese spezielle Anwendung einbettest.

Wie du die Einbindung von Fenstern erreichst, ist, wie Gerold bereits bermerkte, platformabhängig und auch abhängig vom verwendeten GUI Toolkit.

Unter Linux kannst du Fenster sowohl von Gnome als auch von KDE einbetten. Die dazu nötigen Technologien heißen Bonobo respektive KParts. Allerdings kann man damit nur solche Fenster einbetten, die auch in dieser Form bereitstehen.

Unter Windows gibt es ähnliche Technologien: Active X und COM. So kann man z.B. den Internet Explorer einbetten. Allerdings muss ITunes dann als COM-Komponente bzw. ActiveX-Control bereitstehen. Dann benötigst du noch pywin32, um COM Komponenten anzusprechen.

Steht ITunes nicht als Komponente zur Verfügung, dann wird das richtige Einbinden unmöglich. Du könntest höchstens ITunes starten und mittels der Win API die Titelleiste verstecken, das Systemmenü deaktivieren und ITunes dann genau im Client-Bereich deines Fensters platzieren. Dann benötigst du noch ein paar hooks, um beim der Veränderung der Größe oder Position des Clientbereichs das ITunes Fenster ebenfalls zu verändern.
Das sieht dann wenigstens so aus, als wäre es eingebettet. Sei allerdings gewarnt: Dieser Weg ist extrem dirty und wird höchstwahrscheinlich nicht funktionieren, ohne das du mehrere Wochen mit Kopfschmerzen vorm Editor verbringst. Die Windows API ist nämlich ein sehr übles Toolkit...
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 12. März 2007, 17:12

lunar hat geschrieben:Du könntest höchstens ITunes starten und mittels der Win API die Titelleiste verstecken, das Systemmenü deaktivieren und ITunes dann genau im Client-Bereich deines Fensters platzieren.
Also das letzte Mal als ich iTunes gesehen habe, hatte es keine Toolbar und hat auch ganz übel ausgeschaut. Schlecht auf Windows portierter Mac-Look. Könnte auch sein, dass die Apple-Entwickler auch ein eigenes Toolkit verwenden (kann auch sein, dass sie Qt verwenden - habe es nicht mehr im Kopf, wäre aber möglich). Jedenfalls macht es das keineswegs leichter.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten