AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigenes Programm nach Aufruf wieder in den Hintergrund legen
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Programm nach Aufruf wieder in den Hintergrund legen

Ein Thema von Brainshock · begonnen am 8. Mai 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#1

Eigenes Programm nach Aufruf wieder in den Hintergrund legen

  Alt 8. Mai 2008, 14:17
Hallo,

ich habe ein Programm, was von einem Fremdprogramm über Parameter aufgerufen wird. Mein Programm ist geöffnet und liegt in der Fensterreihenfolge im Hintergrund (nicht minimiert). Beim Aufruf kommt es in den Vordergrund und führt ein paar Aktionen aus. Nun soll es nach der Durchführung der Aktionen wieder im Hintergrund verschwinden, d.h. hinter dem Fremdprogramm liegen.

Hat einer eine Ahnung, wie das gemacht wird?
Ich habe schon einige Sachen getestet, aber keine Lösung gefunden. SetWindowPos() z.B. funktioniert auch nicht so richtig.

Gruß,
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

Re: Eigenes Programm nach Aufruf wieder in den Hintergrund l

  Alt 8. Mai 2008, 14:26
in einer meiner Anwendungen nutze ich sowas:
Delphi-Quellcode:
Var H, Hf: THandle;

H := {Form1.}Handle; // Fensterhandle der eigenen Form
Hf := Fensterhandle_der_Fremdanwendung;

SetWindowPos(H, Hf, 0, 0, 0, 0,
  SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOOWNERZORDER);
SetActiveWindow(Hf);
oder (kurz)
Delphi-Quellcode:
Hf := Fensterhandle_der_Fremdanwendung;
SetWindowPos({Form1.}Handle, Hf, 0, 0, 0, 0,
  SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOOWNERZORDER);
SetActiveWindow(Hf);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#3

Re: Eigenes Programm nach Aufruf wieder in den Hintergrund l

  Alt 8. Mai 2008, 14:45
Danke himitsu,

ich habe es nochmal nach deinem Muster probiert, es führt aber leider nicht zum gewünschten Ergebnis. Das Programm bleibt immernoch im Vordergrund. Mein Code ist der folgende:

Delphi-Quellcode:
SetWindowPos(Handle,
  HWND_BOTTOM, // hab HWND_BOTTOM, da ich das Handle von der Fremdanwendung nicht kenne
  0, 0, 0, 0,
  SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOOWNERZORDER);
Matthias
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#4

Re: Eigenes Programm nach Aufruf wieder in den Hintergrund l

  Alt 8. Mai 2008, 14:52
Okay, scheint an meiner Programmkonstellation zu liegen. Im Testprogramm funktioniert SetWindowPos. Oje, jetzt geht die Sucherei los.

Gruß,
Matthias
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#5

Re: Eigenes Programm nach Aufruf wieder in den Hintergrund l

  Alt 11. Jul 2008, 13:31
So, nochmal aufwärmen das Ganze.

Das Fenster meiner Anwendung verschwindet jetzt erfolgreich im Hintergrund und das Fenster der Fremdanwendung ist im Vordergrund.

Jetzt habe ich das Problem, das meine Anwendung in der Taskleiste immer noch als aktiv angezeigt wird und deshalb der Fokus nicht auf der Fremdanwendung liegt.
Gibt es eine Funktion, mit der ich meine Anwendung deaktivieren kann ( Application.Deactivate oder so)?

Gruß,
Matthias
  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 05:38 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