AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

Ein Thema von kuba · begonnen am 29. Aug 2015 · letzter Beitrag vom 30. Aug 2015
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#1

Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 29. Aug 2015, 20:15
Hallo,

ich möchte mit meiner Anwendung verhindern, dass in einem anderen Programm die Bedienung per Mauklick möglich ist.
In meiner Anwendung ist bereits eine DLL enthalten, die auch Mausklicks filtern kann, diese basiert auf einem Code von Swiss Delphi Center.

Ich hatte mir so vorgestellt, dass die Mausevents nur herausgefiltert werden, wenn die Maus über dem Fenster steht. Dazu ermittle ich die Cursorposition mit folgendem Code:

Delphi-Quellcode:
function IsMouseWithinOurRange: Boolean;
  var
    buffer: array [0..255] of Char;
    p: TPoint;
  begin
    Result := False;
    GetCursorPos(p);
    GetClassName(WindowFromPoint(p), buffer, length(buffer));
    if string(buffer)='Startthen Result:=true;
  end;
Wie kann ich das zusammen verwenden ? Ich möchte die Funktion zur Ermittlunng der Cursorposition irgendwie verwenden um die Filterung der Maustastenevents zu aktivieren bzw. zu deaktivieren. Ich rätsel schon eine ganze Weile ...

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 29. Aug 2015, 20:27
Hat sich schon erledigt, zu blöd aber auch. Ich hab die Funktion einfach in die DLL eingebaut und die Mausevents damit abgefangen. Cool

Delphi-Quellcode:
if IsMouseWithinOurRange then
        begin
        case TPMsg(lParam)^.message of
          WM_LBUTTONUP:
            Kill := True;
          WM_LBUTTONDOWN:
            Kill := True;
        end;
        end;
Ich hab echt schon so einige Stunden damit verbracht, aber kaum fragt man, schon kommt die passende Antwort

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#3

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 29. Aug 2015, 20:52
//Cursor einsperren
ClipCursor(self); //Beispiel
//Cursor freigeben
ClipCursor(nil);
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#4

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 29. Aug 2015, 21:11
//Cursor einsperren
ClipCursor(self); //Beispiel
//Cursor freigeben
ClipCursor(nil);
Danke für den Tip, aber ich hab es so wie oben beschrieben hinbekommen. Ich hab mich so viele Stunden damit beschäftigt und nur Müll gemacht. Nachdem ich mein Problem hier gepostet habe hat es nur 5 Minuten gedauert und es ging sofort.

Der Hook bewirkt, mit der von mir eingefügten Funktion, daß die Linke Maustaste auf dem Windows Startbutton herausgefiltert wird.

Das Problem verfolgte mich ehrlich gesagt schon seit einigen Jahren ...


KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 29. Aug 2015, 23:01
//Cursor einsperren
ClipCursor(self); //Beispiel
//Cursor freigeben
ClipCursor(nil);
Hallo,

es hat doch noch nicht ganz so funktioniert, aber dies war der entscheidene Tip, Danke !!

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#6

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 30. Aug 2015, 00:22
Irgend etwas stimmt noch nicht, mit 32 Bit Windows funktioniert es, aber nicht mit 64 Bit Windows.
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 30. Aug 2015, 00:49
Ist die Hook DLL auch 64-Bit?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 30. Aug 2015, 01:17
Ist die Hook DLL auch 64-Bit?
Ja sicher, ich hab mit 4 virtuellen Maschinen getestet, 2 x 32 Bit und 2 x 64 Bit. Jedesmal das gleiche Ergebnis, mit 32 Bit funktioniert es einwandfrei, mit 64 Bit funktioniert lediglich der "Beep", der mir sagt dass die Maus über dem Fenster liegt. Das ist schon sehr seltsam ...

Ich habe bisher nur mit Windows 10 getestet ....

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.153 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 30. Aug 2015, 05:56
Hallo,
die Frage war nicht das Betriebsssystem,
sondern ob du dein DLL als 64-Bit-DLL kompiliert hast.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
552 Beiträge
 
Delphi XE7 Professional
 
#10

AW: Wie kann ich Mausklicks auf einem fremden Fenster verhindern ??

  Alt 30. Aug 2015, 10:49
Hallo,
die Frage war nicht das Betriebsssystem,
sondern ob du dein DLL als 64-Bit-DLL kompiliert hast.


Heiko
Ja, habe ich und getestet auf 4 PC's, die 32 Bit Version auf einem 32 Bit Windows und die 64 Bit Version auf einem 64 Bit Windows. Warum funktioniert es nicht mit den 64-Bit Versionen ? Verstehe ich nicht ...

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf