AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fremde Anwendung als MDI-Fenster starten
Thema durchsuchen
Ansicht
Themen-Optionen

Fremde Anwendung als MDI-Fenster starten

Ein Thema von cruiser · begonnen am 22. Mai 2006 · letzter Beitrag vom 28. Nov 2006
Antwort Antwort
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#1

Fremde Anwendung als MDI-Fenster starten

  Alt 22. Mai 2006, 13:29
Ich bin gerade dabei eine Anwendung zu schreiben, die die Funktionalität einer anderen direkt kapselt. Dazu starte und hole ich mir die fremde Anwendung über

Delphi-Quellcode:
  winexec('{cmdline}',SW_HIDE);
  hwnd := 0;
  repeat
    hwnd := findWindow('{class}',nil);
    application.ProcessMessages;
  until hwnd <> 0;
  windows.SetParent(hwnd,Handle);
  showwindow(hwnd, SW_MAXIMIZE);
Soweit funktioniert das auch ganz gut, bis auf eine Kleinigkeit. Wechsel ich auf das eingefangene Fenster, verliert mein Hauptfenster den Focus und umgekehrt.

Kann ich das eingefangene Fenster irgendwie nachträglich als MDI-Child meines Hauptfensters deklarieren? Vielleicht fällt euch ja was ein... ich seh nämlich vor lauter GW_STYLE und GW_EXSTYLE schon vor lauter Bäumen keinen Wald mehr :/
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Fremde Anwendung als MDI-Fenster starten

  Alt 23. Mai 2006, 07:51
Alternativ könntest du als Parent ein eigens erzeugtes MDI-Child als Parent setzten!
Dann solltest du aber die Titelleiste des Originalfensters ausblenden sonst siehts doof aus!

Greetz
Boombuler
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Fremde Anwendung als MDI-Fenster starten

  Alt 23. Mai 2006, 10:34
Das ist nicht das Problem. Auch das Management nicht... nur dass ich, wenn ich in einem der eingefangenen Fenster was mach, den Focus vom Hauptfenster verlier sieht ein wenig doof aus... aktiv gibt es in dem Hauptfenster so wie so nicht viel zu machen, aber der Focus-Change irritiert..

Das hübscheste wäre wirklich, wenn ich die Fenster umbiegen könnt, so dass sie sich wie MDI-Fenster des Hauptfensters verhalten. Auf ein 'richtiges' MDI-Fenster pappen ist zumindest keine Lösung die sauber geht, sorry.
  Mit Zitat antworten Zitat
Benutzerbild von Shivan
Shivan

Registriert seit: 5. Mär 2003
Ort: Ravensburg
131 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Fremde Anwendung als MDI-Fenster starten

  Alt 27. Nov 2006, 10:58
Hi,

hab ein ähnliches Problem. Bist du in dieser Richtung etwas schlauer geworden?

Zum Thema Fokuswechsel hab ich mir schon überlegt, je nach Mausposition den Fokus automatisch zu setzen.

So á la X-Mouse (siehe Linux bzw. MS TweakUI)
Markus Stein
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Fremde Anwendung als MDI-Fenster starten

  Alt 27. Nov 2006, 18:20
ich hab auch eine Frage bezüglich dieses Themas: Wie kann ich den style des eingebauten fenster auf "bsnone" setzen? ich hab gesucht, aber nichts gefunden, was funktioniert hätte...
  Mit Zitat antworten Zitat
Benutzerbild von Shivan
Shivan

Registriert seit: 5. Mär 2003
Ort: Ravensburg
131 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Fremde Anwendung als MDI-Fenster starten

  Alt 28. Nov 2006, 07:48
so in die Richtung:
SetWindowLong(l_Form.Handle, GWL_STYLE, GetWindowLong(l_Form.Handle, GWL_STYLE) and WS_CHILD and not WS_BORDER and not WS_DLGFRAME and not WS_SYSMENU and not WS_THICKFRAME and not WS_GROUP);
Markus Stein
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:40 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