![]() |
Fenster aktiv halten?
Hey,
gibt es eine möglichkeit mein Programm immer Aktiv zu halten (nicht nur im Vordergrund)? mfg gandime |
Re: Fenster aktiv halten?
Das widerspricht der Philosophie von Windows. Wozu brauchst du diese Funktinalität?
|
Re: Fenster aktiv halten?
Dieses Programm Prüft blos ob eine eingescannte Seriennummer (Via Strich-Code) mit einer eingegebenen übereinstimmt.
Naja dabei kann es halt vorkommen das das Fenster nicht mehr aktiv ist da die Benutzer möglicherweise auf die Tastatur kommen o.ä. sodass das Fenster nicht mehr aktiv ist. (Einen Alarm dafür wäre zwar eine Lösung aber leider keine gute, da sonst der ganze Betrieb einer Produktion kurzzeitig angehalten werden muss) Gibt es nicht eine Function o.ä. die ausgelöst wird sobald das Fenster nicht mehr aktiv ist? Dann könnte man doch ganz einfach darauf reagieren, indem man es wieder "Aktiviert". Die zweite Idee die ich hätte wäre ein Tastaturhook. |
Re: Fenster aktiv halten?
Probier es mal mit WM_ACTIVATE.
|
Re: Fenster aktiv halten?
joa das läuft schon ganz gut:
Delphi-Quellcode:
blos SetForegroundWindow() funktioniert nicht so wie ich es mir vorgestellt habe^^
procedure TForm1.InActive(var Msg:TWMActivate);
begin if not (Msg.Active=WA_ACTIVE) then begin SetForegroundWindow(application.Handle); end; inherited; end; gibts da ne andere Funktion o.ä.? |
Re: Fenster aktiv halten?
Hallo!!
Du verwendest das Handle der Applikation, versuch mal das Handle des Hauptformulars (oder eben des entsprechenden Fensters), vielleicht hast Du dann mehr Glück :-) |
Re: Fenster aktiv halten?
ne das geht leider alles ned so recht
sobald ich SetForegroundWindow() auf meine Form anwende und wieder ein anderes Fenster anklicke müsste ja egl wieder Msg.Active=WA_ACTIVE ausgelöst werden was aber nicht der fall ist. Aber es wird immer ca. 35 mal ausgelöst wenn ich die Funktion benutze, wie sie dort steht. Edit: mit einer Boolean-Abfrage kann ich das mehrfache Aufrufen der Rutine verhindern aber das Fenster ist trotzdem nicht Aktiv dadurch:
Delphi-Quellcode:
var
b:Boolean; procedure TForm1.InActive(var Msg:TWMActivate); begin if not (Msg.Active=WA_ACTIVE) and b then begin b:=false; SetForegroundWindow(application.Handle); b:=true; end; inherited; end; |
Re: Fenster aktiv halten?
so jetzt hab jetzt nen Tastatur-Hook genommen :-/ die anderen Varianten wollten nicht so wie ich es wollte^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
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