![]() |
Form AlwaysOnTop und nicht durchklickbar machen
Moin,
Ich möchte eine Anwendung erstellen, die verhindert, dass man auf einen bestimmten Bereich eines anderen Programms klickt, der von dem Programm verdeckt wird. Wenn ich mein Programm AlwaysOnTop mache, dann auf das untere Programm klicke (sodass es den Fokus bekommt), und dann auf das was hinter meinem Programm liegt, dann wird der Mausklick durch mein Programm geleitet. Wie kann ich das verhindern? |
AW: Form AlwaysOnTop und nicht durchklickbar machen
Wie machst du dein Programm AlwaysOnTop?
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Ich habe es über FormStyle in den Eigenschaften der Form probiert, und über
Delphi-Quellcode:
Die Form bleibt auch immer sichtbar, man kann halt nur durch sie durchklicken :(
SetWindowPos(Self.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Dieses Verhalten kann ich ohne Quellcode nicht nachvollziehen.
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Die Windows-Version wäre noch interessant. Mir ist das Verhalten auch neu und ich muss Formulare immer mal wieder zwangsweise im Vordergrund lassen. Und bisher konnte der Anwender problemlos auf die Fenster im Vordergrund klicken, ohne aus Versehen z.B. die Festplatte auszuwerfen :stupid:
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Delphi-Quellcode:
ist letztendlich schon der gesamte Quellcode. Wenn das dahinterliegende Fenster fokussiert ist gehen alle Mausklicks "durch" mein Programm.
FormStyle := fsStayOnTop
Windows Versionen habe ich XP und Win 7 probiert, und Delphi Versionen 6 und XE5. Das Problem tritt anscheinend nur bei bestimmten Programmen im Hintergrund auf. |
AW: Form AlwaysOnTop und nicht durchklickbar machen
Welche Programme verhalten sich denn nicht konform? Abhilfe würde imho nur ein eigener Hook schaffen, der die Mausklicks exklusiv an deine Anwendung schickt. Anders werden es die Bösewichte auch nicht machen. Aber da bin ich mir nicht 100% sicher.
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Du sagst praktisch, daß deine Form nicht auf Mausereignisse reagieren soll (SWP_NOACTIVATE) und dann beschwerst du dich, daß sie es nicht macht?
Zitat:
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Das Problem tritt nur beim Mega Pixel IP Camera Viewer 1.06 auf.
Alles andere funktioniert so wie es sollte. |
AW: Form AlwaysOnTop und nicht durchklickbar machen
Ich weiß ja nicht wie es bei dir ist, aber ich kann so ein StayOnTop-Fenster auch ganz leicht ausblenden, indem ich die Windowstaste+D (Desktop aktivieren) klicke.
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Zitat:
Zitat:
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Was willst du denn genau damit bezwecken? Klingt für mich alles nach ziemlicher Bastelei.
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Ich hatte mal ne Kundin, die über Bereich eines Programmes, den sie nicht sehen wollte einen Post-it geklebt hat. :shock:
|
AW: Form AlwaysOnTop und nicht durchklickbar machen
Fassen wir zusammen. Ein merkwürdiges Verhalten, das sich nur im Zusammenspiel mit einem einzigen speziellen Programm zeigt und die Forenteilnehmer so nicht nachvollziehen können.
Wer ist jetzt der Schuldige? [ ] a) das Delphi-Programm, das mit allen anderen Programmen kooperiert, oder [ ] b) das eine spezielle Programm, das sich anders verhält, als so ziemlich alle anderen? :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 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