AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mauszeiger systemweit verstecken
Thema durchsuchen
Ansicht
Themen-Optionen

Mauszeiger systemweit verstecken

Ein Thema von originalhanno · begonnen am 17. Apr 2006 · letzter Beitrag vom 18. Apr 2006
Antwort Antwort
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#1

Mauszeiger systemweit verstecken

  Alt 17. Apr 2006, 23:08
Hallo,
ich brauche Tipps, wie ich den Mauszeiger global, also systemweit
verstecken kann.

Vielen Dank schon mal...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Mauszeiger systemweit verstecken

  Alt 17. Apr 2006, 23:19
Wozu soll das gut sein?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#3

Re: Mauszeiger systemweit verstecken

  Alt 17. Apr 2006, 23:50
Damit man den Mauszeiger nicht mehr sieht?

Aber mal im Ernst:
ich schreibe gerade einen Maushook. Dabei wird eine Bewegung des Scrollrades in eine y-Bewegung umgesetzt, wenn man gleichzeitig das Scrollrad drückt.
Nun möchte ich noch erreichen, das bei gedrückter Scroll-Wheel-Taste der Cursor an seiner derzeitigen Position "kleben" bleibt, eine Bewegung der Maus also für den Benutzer nicht zu erkennen ist.
Dazu möchte ich den Mauszeiger verstecken (und zwar nicht nur wie mit (Showcursor=FALSE, sondern für alle Fenster), und ihn an seiner "alten" Position auf den Bildschirm zeichnen.(Weiss noch nicht genau wie, vielleicht mit "Draw"?)

Wozu man das braucht, kann ich hier nicht erklären.
Ich hoffe das eine Beschreibung dessen, was ich mit meinem Programm erreichen will reicht.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Mauszeiger systemweit verstecken

  Alt 18. Apr 2006, 00:52
du kannst ja den Mauszeiger auch wieder "wirklich" an seiner alten Position positionieren, also mit
Delphi-Quellcode:
mouse.x/mouse.y:=oldpos
//oder
mouse.position:=point(oldposx,oldposy)
Es kann nämlich ziemlich kompliziert sein alle Mauszeigerbewegungen zu simulieren etc.


auf den Bildschirm zeichnen ist auch schwierig, aber du kannst auf den Desktop so zugreifen:
Delphi-Quellcode:
canvas:=tcanvas.create;
canvas.handle:=getwindowdc(getdesktopwindow);
canvas.dosomething;
canvas.free;
sobald dann allerdings das Fenster auf das du den Mauszeiger gezeichnet hast neu Gezeichnet wird (verschoben, verändert, etc.), verfallen die Änderungen.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#5

Re: Mauszeiger systemweit verstecken

  Alt 18. Apr 2006, 10:00
Jau, danke für die Antwort.
Allerdings wird der Effekt ein anderer sein, als ich mir wünsche.
Ich möchte, das ein Programm x merkt, das die Maus bewegt wird, der User aber denkt, das die Maus still steht.

Bei der Lösung mit oldpos, merkt ja auch das Programm mix mehr von der Bewegung.Damit hätte ich ja wirklich den Cursor "festgenagelt".
Ich möchte aber nur "das Bild festnageln", die Systemnachricht soll schon noch an das Programm gehen.

Es währe cool, wenn ich die Nachricht zum Neuzeichnen des Cursors auf dem Bildschirm abfangen könnte.
Dann könnte ich das Bild, welches mit dem Klick gezeichnet würde noch "durchlassen", die anderen "Neu-Zeichnen-Befehle" danach aber Wegfiltern.

Ich hoffe es ist klar, was ich meine.
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:45 Uhr.
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