Hallo Toms,
danke noch einmal für Deine Idee!
Da ich mehr gegoogelt habe um eine Lösung zu finden,
als mich Deinen Tips zu widmen hat es lange gedauert,
bis ich kapierte, dass eh alles unter meiner Nase ist!
Für Alle die es auch interessiert, ein kleines Q&D Beispiel:
Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
// Hierbei wird der Windows-Taschenrechner einem Panel als Childfenster zugeordnet
//
FUNCTION GetHandleFromWindowTitle(TitleText: STRING): hWnd;
VAR
StrBuf : ARRAY[0..$FF] OF Char;
BEGIN
Result := FindWindow(PChar(0), StrPCopy(StrBuf, TitleText));
END;
VAR
aWindowH : hWnd;
BEGIN
IF ShellExecute(0, 'open', 'calc.exe', NIL, NIL, SW_SHOW) > 32 THEN
BEGIN
// Warten, bis Rechner sichtbar ist
Sleep(1000);
aWindowH := GetHandleFromWindowTitle('Rechner');
// Rechner in Panel einbetten
Windows.SetParent(aWindowH, Panel1.Handle);
END;
END;