Entwickler-Ecke
Windows API - Fremde Anwendung "einfangen"
rochus - Sa 25.12.04 17:16
Titel: Fremde Anwendung "einfangen"
Hallo,
bin mir jetzt nicht ganz sicher, ob das hier her gehört, aber ich nehme mal an, wenn was geht, dann über die Win32API :)
Meine Frage ist eigentlich erstmal prinzipieller Natur, also ob das schon mal jemand gemacht hat, und wenn ja, wie:
Ohne COM oder ähnliches anzusprechen würde ich gerne eine Anwendung so einfangen, dass ich sie quasi wie ein MDI Fenster anspreche. In der Taskleiste sollte die Anwendung wenn möglich nicht unbedingt erscheinen, das wäre aber zu "verkraften". Also quasi fernsteuerung nur ohne COM.
Geht sowas und wenn ja, wo bekomme ich Informationen dafür.
gruß
rochus
Karlson - Sa 25.12.04 18:56
Ich kapiere echt nicht was du meinst ;)
Aber "fernsteuern" kannst du das Fenster doch mit dem Handle und so sachen wie PostMessage. Also da kannst du z.b. Buttons klicken, und statics editieren und das Fenster verschieben usw.
Meinst du das?
rochus - Sa 25.12.04 19:06
Okay, ich versuchs nochmal zu erklären, was ich eigentlich will *g*.
Es klingt jetzt so ähnlich wie ein Desktop-Ersatz, wie etwa Litestep oder SharpE, ist aber ganz anders:
Stell dir vor, die Anwendung startet und links hast du wie bei Outlook so ne Outlook-bar. Jetzt ist auf den einzelnen Buttons dieser Bar nicht irgendne Mail- oder Kalenderfunktion, sondern über diese Buttons startest du irgendein Programm, sagen wir mal, Notepad.
Das starten und so weiter ist alles kein Problem und an die Anwendung Nachrichten schicken auch nicht, aber: Ich hätte gern, dass die Anwendung, die ich starte "innerhalb" meines Formulars angezeigt wird. Also wie, wenn ich ein MDI Fenster erzeuge.
Ich hoff jetzt ist's verständlicher? *lol*
gruß
rochus
Jakob Schöttl - Di 02.01.07 22:09
Nur der Vollständigkeit will ich hier, um dieses Thema abzuschließen sagen:
Delphi-Quelltext
1:
| Windows.SetParent(FindWindow(nil,'<FensterName (entspricht in Delphi: Form.Caption) des zukünftigen "MDI-Fensters">'),Self.Handle); |
Hier wird also die Eigenschaft Parent des Zielfensters auf dein eigenes Delphi-Form gesetzt. Das Programm wird dann in deinem Fenster angezeigt. Hättest das gleiche Thema
hier im df [
http://www.delphi-forum.de/viewtopic.php?t=64000&highlight=] gefunden.
Gausi - Di 02.01.07 22:32
Richtig. Ein Zeitsprung von knapp zwei Jahren in die Zukunft ist ja seit den 80er Jahren dank des Flux-Kompensators kein Problem mehr. :roll:
Und auch wenns bei dir scheinbar funktioniert hat, so würde mich mal interessieren, ob das nicht mehr gilt:
aus der Delphi Hilfe (D7 Personal): |
Remarks
An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application.
|
Jakob Schöttl - Di 02.01.07 23:14
Gausi hat folgendes geschrieben: |
Richtig. Ein Zeitsprung von knapp zwei Jahren in die Zukunft ist ja seit den 80er Jahren dank des Flux-Kompensators kein Problem mehr. :roll: |
Gut, das hab ich übersehen...
Gausi hat folgendes geschrieben: |
Und auch wenns bei dir scheinbar funktioniert hat, so würde mich mal interessieren, ob das nicht mehr gilt:
aus der Delphi Hilfe (D7 Personal): | Remarks
An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application.
|
|
... aber falls das auch ironisch gemeint ist: Bei mir geht es wirklich (WinXP, D7Prof)!
Du hast nicht zufällig versehentlich bei der
VCL-Hilfe von TCustomForm.SetParent nachgesehen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!