Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie kann ich das Fenster (Window) hinter mein Programm aktiv? (https://www.delphipraxis.net/159074-wie-kann-ich-das-fenster-window-hinter-mein-programm-aktiv.html)

Luckie 13. Mär 2011 14:53

AW: Wie kann ich das Fenster (Window) hinter mein Programm aktiv?
 
also ich würde da nicht an dem Mechanismus von Windows rumfuschen. Der Benutzer ist an den Mechanismus von Windows gewöhnt und würde wohl eher irritiert reagieren, wenn sich sein Windows auf Grund deines Programms auf einmal anders verhält -- wenn er überhaupt herausfindet, dass es an deinem Programm liegt. Lass es so wie es ist und überlasse es einfach Windows.

thomas2009 13. Mär 2011 15:06

AW: Wie kann ich das Fenster (Window) hinter mein Programm aktiv?
 
wenn mehrere windows gibt, dann kann ich zum Beispiel einen Timer setzen der ständig nach dem Namen von dem aktiven Windows ausliest
Und so kann ich wissen, wer zuerst aktiv war :-D

Wenn ich folgendes mache
Delphi-Quellcode:
...
hwnd:=GetForeGroundWindow;
Caption:=
wie kann ich den Namen filtern ?
Oder brauche ich überhaupt den Namen zu wissen ?
Einfach hwnd ständig ersetzen (aktualisieren) ?

DeddyH 13. Mär 2011 15:26

AW: Wie kann ich das Fenster (Window) hinter mein Programm aktiv?
 
Zitat:

Zitat von thomas2009 (Beitrag 1088110)
wenn mehrere windows gibt, dann kann ich zum Beispiel einen Timer setzen der ständig nach dem Namen von dem aktiven Windows ausliest
Und so kann ich wissen, wer zuerst aktiv war

Kommt Dir das nicht selber ein bisschen "komisch" vor?

EWeiss 13. Mär 2011 15:34

AW: Wie kann ich das Fenster (Window) hinter mein Programm aktiv?
 
Zitat:

Zitat von DeddyH (Beitrag 1088121)
Zitat:

Zitat von thomas2009 (Beitrag 1088110)
wenn mehrere windows gibt, dann kann ich zum Beispiel einen Timer setzen der ständig nach dem Namen von dem aktiven Windows ausliest
Und so kann ich wissen, wer zuerst aktiv war

Kommt Dir das nicht selber ein bisschen "komisch" vor?

Um ein Window in den Vordergrund zu setzen würde ich eher das gegenteil verwenden.
SetForeGroundWindow..

Aber irgendwie ist dein vorhaben sehr subjekt. ;)

gruss

thomas2009 13. Mär 2011 18:21

AW: Wie kann ich das Fenster (Window) hinter mein Programm aktiv?
 
Zitat:

Zitat von DeddyH (Beitrag 1088121)
Kommt Dir das nicht selber ein bisschen "komisch" vor?

Stimmt, das Problem das letzte aktive Fenster ist immer mein Programm-Fenster :?
Oder meinst Du was anderes ?
Hier ist der Code:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
hwnd: THandle;
   w,h : integer;
   DC : HDC;
   hWin : Cardinal;
   r : TRect;
   sDC: Integer;
   IconInfo: TIconInfo;
   activeWindow: bool;
begin
sDC := GetDC(0);
   if activeWindow then
   begin
     hWin := GetForegroundWindow;
     sdc := GetWindowDC(hWin) ;
     GetWindowRect(hWin,r) ;
     w := r.Right - r.Left;
     h := r.Bottom - r.Top;
     chwnd:=GetForegroundWindow;
   end
   else
   begin
     hWin := GetDesktopWindow;
     sdc := GetDC(hWin) ;
     w := GetDeviceCaps (sDC, HORZRES) ;
     h := GetDeviceCaps (sDC, VERTRES) ;
   end;

caption:=IntToStr(w) +', ' + IntToStr(h);

end;
Der Code überprüft ob ein Fenster auf Desktop gibt oder nicht. Und wenn nicht, dann nehmt den Desktop als das aktive Fenster
Ich kann zwar das aktive Fenster (aber nicht von meinem Programm) speichern?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Seite 2 von 2     12   

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