Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Form AlwaysOnTop und nicht durchklickbar machen (https://www.delphipraxis.net/181553-form-alwaysontop-und-nicht-durchklickbar-machen.html)

RootGrapefruit 25. Aug 2014 10:21

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?

baumina 25. Aug 2014 10:42

AW: Form AlwaysOnTop und nicht durchklickbar machen
 
Wie machst du dein Programm AlwaysOnTop?

RootGrapefruit 25. Aug 2014 10:47

AW: Form AlwaysOnTop und nicht durchklickbar machen
 
Ich habe es über FormStyle in den Eigenschaften der Form probiert, und über
Delphi-Quellcode:
 SetWindowPos(Self.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);
Die Form bleibt auch immer sichtbar, man kann halt nur durch sie durchklicken :(

baumina 25. Aug 2014 11:00

AW: Form AlwaysOnTop und nicht durchklickbar machen
 
Dieses Verhalten kann ich ohne Quellcode nicht nachvollziehen.

Dejan Vu 25. Aug 2014 11:02

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:

RootGrapefruit 25. Aug 2014 11:09

AW: Form AlwaysOnTop und nicht durchklickbar machen
 
Delphi-Quellcode:
FormStyle := fsStayOnTop
ist letztendlich schon der gesamte Quellcode. Wenn das dahinterliegende Fenster fokussiert ist gehen alle Mausklicks "durch" mein Programm.


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.

Dejan Vu 25. Aug 2014 11:29

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.

himitsu 25. Aug 2014 11:37

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:

Zitat von RootGrapefruit (Beitrag 1269762)
Delphi-Quellcode:
FormStyle := fsStayOnTop
ist letztendlich schon der gesamte Quellcode.

Und nein, das ist es nicht. (SWP_NOACTIVATE)

RootGrapefruit 25. Aug 2014 11:50

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.

baumina 25. Aug 2014 12:06

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.


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

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