Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fremde Exe in exe kleben (einbinden) ! (https://www.delphipraxis.net/99896-fremde-exe-exe-kleben-einbinden.html)

taktaky 19. Sep 2007 10:37


Fremde Exe in exe kleben (einbinden) !
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ist möglich und leicht, ein fremdes Programm in mein Programm einzubinden?

Das fremde exe soll aber richtig Fest sein und auch wenn ich das Programm bewege.

Binding an Object visible on runtime

http://members.lycos.co.uk/forforums...-einbinden.jpg



Gruß




_________________

SirThornberry 19. Sep 2007 10:49

Re: Fremde Exe in exe kleben (einbinden) !
 
hallo, könntest du das Bild bitte in den Anhang packen. Das hat den Vorteil das es auch noch im Beitrag vorhanden ist wenn du es mal vom Lycosserver löschst :)

Luckie 19. Sep 2007 10:49

Re: Fremde Exe in exe kleben (einbinden) !
 
Du könntest mit MSDN-Library durchsuchenSetParent dein Fenster als Parent des fremden Fensters setzen. Aber wozu soll das gut sein?

taktaky 19. Sep 2007 11:00

Re: Fremde Exe in exe kleben (einbinden) !
 
Zitat:

Zitat von Luckie
Du könntest mit MSDN-Library durchsuchenSetParent dein Fenster als Parent des fremden Fensters setzen. Aber wozu soll das gut sein?

Aber wie? gar nicht kappiert!

Gibt es kein Code dafür?

Ist eine exe nicht wie ein Bild auf Form zu binden?

Gruß




-----

Luckie 19. Sep 2007 11:02

Re: Fremde Exe in exe kleben (einbinden) !
 
Das ist der Code!
http://msdn2.microsoft.com/en-us/library/ms633541.aspx

Zitat:

Zitat von taktaky
Ist eine exe nicht wie ein Bild auf Form zu binden?

Wie bitte? Geht das etwas verständlicher?

taktaky 19. Sep 2007 11:17

Re: Fremde Exe in exe kleben (einbinden) !
 
Zitat:

Zitat von Luckie

Trotzdem nicht kapiert :( , ich sehe nur die allgemeine Funktion
Wie soll der Delphi Code lauten?

SirThornberry 19. Sep 2007 11:20

Re: Fremde Exe in exe kleben (einbinden) !
 
du musst das Fenster der Exe suchen welches du einfangen willst. Das Handle dieses Fensters übergibst du dann der Funktion und übergibst zusätzlich das Handle des neuen Parents (das deiner Form).
Wie die einzelnen Schritte funktionieren findet sich über die Suche bzw. kannst du dazu auch Fragen stellen wenn du an einer konkreten Stelle nicht weiter kommst. Aber ein copy&paste Beispiel wird dir wohl verwährt bleiben.
Schau dir die Hilfe zur Funktion genau an und arbeite dich in das Thema ein so das du es auch verstehst.

taktaky 19. Sep 2007 13:43

Re: Fremde Exe in exe kleben (einbinden) !
 
Hallo,

alle gerade laufende Anwendungen kann ich finden und ihre Titel listen :

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  EnumWindowsProc = function (Hwnd : THandle;Param:Pointer):Boolean;stdcall;
  TFrmMain = class(TForm)
    BtLister: TButton;
    List1: TListBox;
    procedure BtListerClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation
function GetTitle(Hwnd : THandle;Param:Pointer):Boolean;stdcall;
var
  Text : string;
begin
  SetLength(Text,100);
  GetWindowText(Hwnd,Pchar(Text),100);
  FrmMain.List1.Items.Add (Inttostr(Hwnd) + ' : ' + Text);
  GetTitle := True;
end;

{$R *.DFM}

procedure TFrmMain.BtListerClick(Sender: TObject);
var
WindowProc : EnumWindowsProc;
begin
  List1.Items.Clear;
  WindowProc := GetTitle;
  EnumWindows(@WindowProc,0);
end;

end.
Aber das Problem wie kann ich eine in mein Form Binden?


Gruß

Luckie 19. Sep 2007 13:49

Re: Fremde Exe in exe kleben (einbinden) !
 
Wurde dir doch gerade erklärt:
  1. Handle des Betreffenden Fenster finden mit MSDN-Library durchsuchenFindWindow
  2. Oben genannte API-Funktion aufrufen, mit dem Handle des eignen und dem Handle des mit Hilfe von FindWindow gefundenen Fensters.

taktaky 19. Sep 2007 14:49

Re: Fremde Exe in exe kleben (einbinden) !
 
Zitat:

Zitat von Luckie
Wurde dir doch gerade erklärt:
  1. Handle des Betreffenden Fenster finden mit MSDN-Library durchsuchenFindWindow
  2. Oben genannte API-Funktion aufrufen, mit dem Handle des eignen und dem Handle des mit Hilfe von FindWindow gefundenen Fensters.

Ich kann zwar ein Window finden ,anzeigen, ausblenden, ... :
Delphi-Quellcode:

procedure TForm1.Button3Click(Sender: TObject);
begin
Windows.ShowWindow(FindWindow(nil,PChar('Test')),SW_show);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Windows.ShowWindow(FindWindow(nil,PChar('Test')),SW_HIDE); // Test : Anwendung-Name
end;
Das Problem, wie kann ich das Fenster binden?



--------


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz