AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Oberfläche (Resourcen) eines Programms nachbilden
Thema durchsuchen
Ansicht
Themen-Optionen

Oberfläche (Resourcen) eines Programms nachbilden

Ein Thema von moritz · begonnen am 19. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#1

Oberfläche (Resourcen) eines Programms nachbilden

  Alt 19. Okt 2005, 19:59
Moin!

Ich wollte mich mal erkundigen, ob es eine Möglichkeit gibt, aus einer EXE (Bzw. eben dem ganzen Programm) die Oberfläche auszulesen und diese Nachzubauen...Eben selber ein Fenster aufbauen, wie es Windows macht, ohne das Programm ausführen zu müssen.
Oder, falls das nicht geht, das Programm auszuführen, und paralell dazu das Interface mitlaufen zu lassen.

Gruß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Achtzig

Registriert seit: 10. Okt 2005
Ort: Berlin
8 Beiträge
 
#2

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 15:30
Ich glaube nicht. Komponenten die zB. zur Laufzeit erzeugt werden, werden natürlich nicht in der Resource gespeichert. Außerdem müßten alle erforderlichen Komponenten vorhanden sein und richtig initialisiert werden, wozu das Programm ausgeführt werden muß.

Ein Interface wird Dir auch nicht weiterhelfen, da Dir dann immernoch der Programmcode fehlt.
Wenn es nur um das Abbild eines Fensters geht, kann es mit Alt+Druck in die Zwischenablage
kopiert werden.

Nebenbei bemerkt sind wir doch Programmierer und keine Piraten.
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 15:33
Moin!

Ja, aber die Oberfläche wird afaik. eben aus Window Messages (ShowMessage) und eben den Resourcen aufgebaut - Wenn man an beides rankommen würde, müsste es doch eigentlich möglich sein, oder?

Das mit den Piraten möchte ich nicht gehört haben Nein, ernsthaft: Es geht hier nicht um Piraterie

Gruß

Edit: Rechtschreibefehler
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Achtzig

Registriert seit: 10. Okt 2005
Ort: Berlin
8 Beiträge
 
#4

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 16:00
Gut - kein Pirat

Ich glaube, ich verstehe Deine Frage nicht richtig. ShowMessage ist für die Ausgabe eines Textes zuständig. Die Windows-Messages werden von Windows und einem Programm zur "Unterhaltung" genutzt und nicht als Resource gespeichert, sondern vom Programmcode gesteuert.

Die Oberfläche würde ich auch nicht aus der Resource laden (kann wegen Laufzeiterstellungen unvollständig sein) sondern direkt aus dem geöffneten Fenster "holen". Handle des Fensters besorgen und alle Komponenten ermitteln. Aus dem Kopf weiß ich leider nicht, wie die entsprechenden Windows-Funktionen benannt sind; sie sind auf jeden Fall vorhanden.

"Fremde" Fenster beinhalten oft auch "fremde" Komponenten die nicht einfach (in der Funktion) nachgebildet werden können.

Wahrscheinlich ist es wesendlich einfacher, daß Fenster per Hand nachzubauen.
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#5

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 16:34
Moin!

Also, es geht darum, ein beliebiges Programm in einem zweiten Fenster nachzubilden. Sprich, ich starte z.B. meinen Firefox, öffne mein Programm und das zeigt mir genau das, was auch der Firefox in dem Moment zeigt. Wenn ich im Firefox ein MainMenu aufmache, soll das in meinem Programm auch passieren.
Eben wie eine grafische Kopie, die eben nicht gecaptured ist, sondern echt nachgebaut.

Das ganze müsst doch eigentlich gehen, wenn man sämtliche das Fenster betreffende Nachrichten (Das Fenster wird doch nur mit Nachrichten gemalt, oder?) abfängt und sie auf die Resourcen, die man dem Programm entnommen hat, anwendet, oder?

Gruß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 17:18
Hi Moritz. Ich kann mir nicht vorstellen, dass das klappen kann. Es gibt derart viele WindowsMessages, die ein äußerst kompliziertes Zusammenspiel haben. Da immer richtig auf die richtige zu reagieren, dürfte schwer bis unmöglich sein. Außerdem sehe ich ein Problem: Was, wenn das betreffende ("abzumanlende ") Programm überdeckt (oder im Hintergrund) ist? Dann wird es gar nicht gezeichnet, sondern nur der Teil, der gerade zu sehen ist.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#7

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 20. Okt 2005, 17:20
Moin!

Die Sache mit dem Hintergrund ist nicht das Problem...die Messages werden ja trotzdem gesendet, von Windows aber vermutlich einfach nicht gezeichnet.
Das es schwer wird, ist mir klar - aber interessieren würde mich das trotzdem mal, irgendeine Möglichkeit dazu müsste es doch geben, oder?

Gruß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 21. Okt 2005, 00:44
Du müsstest trotzdem haufenweise Programmlogik "abgreifen" können, was imho nicht, oder kaum machbar geht. Man stelle sich eine Paintbox vor, auf die bei WM_PAINT ein Backbuffer kopiert wird, der zuvor evtl. noch mit ein paar Pixeln bemalt wird. Du weisst allein durch WM_PAINT überhaupt nix von dem Backbuffer, und erst recht nichts über das enthaltene Bitmap, geschweige denn wie es zustande kam. Das ist rein Sache des Programmes, und es findet ja auch alles brav in dessen virtuellen Adressraum statt (für gewöhnlich).
Die einzigen Elemente die sich in etwa so wie du dir das denkst abgreifen ließen sind solche, die die WinAPI von sich aus bereitstellt (Fenster, Buttons, Edits, etc.), aber auch bei diesen werden sicherlich hier und da selbstgebaute Varianten verwendet (-> Skins), oder auch mal gerne ein OwnerDraw, durch das du schon mal nicht mehr an die ursprüngliche Darstellung kommst.

Ich fürchte mit deinem Ansatz - so interessant er klingt - wird man nicht allzu weit kommen
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#9

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 21. Okt 2005, 01:28
suche mal nach DeDe.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Oberfläche (Resourcen) eines Programms nachbilden

  Alt 21. Okt 2005, 01:59
Zitat von kiar:
suche mal nach DeDe.

raik
Soweit ich das verstanden habe soll das für sämtliche Programme funktionieren, und zwar voll dynamisch zur Runtime beider Programme. DeDe ist doch afaik "nur" ein Delphi-Decompiler, oder kann der auch mehr? Jedoch sollte das egal wie nicht allzuviel bringen. Denn am Ende liefe es darauf hinaus, fast das gesamte Programm zu kopieren, und die Messages zu doppeln. Da wird's dann aber mit der Legalität haarig, und auch mit dem Sinn .
Ich denke da sollte man seine Zeit und Energie besser in die Entwicklung günstiger Übertragung von (Teil-)Bitmaps stecken, auch wenn es zugegebendermaßen vergleichsweise langweilig wäre ^^
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:41 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