Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Strecke, die die Maus zurücklegt messen (https://www.delphipraxis.net/6117-strecke-die-die-maus-zuruecklegt-messen.html)

dopeline 30. Jun 2003 12:04


Strecke, die die Maus zurücklegt messen
 
ich möchte was kleines progen, was die entfernung misst, die die maus zurücklegt (in metern). wie stelle ich das an?

Grüße, dopeline

RomanK 30. Jun 2003 12:24

Hab mal nen bissle gesucht, also hier in der DP, und hab da was gefunden wo zwei unterschiedliche Lösungsansätze gezeigt werden:
http://www.delphipraxis.net/internal...highlight=hook

Wenn du nicht weiterkommst dann melde dich.

tommie-lie 30. Jun 2003 14:16

Was der Antirassist nur überlesen hat: "(in metern)"
Das ist ohne weiteres nicht möglich, weil der Cursor auf dem Bildschirm ja nicht den Bewegungen der Maus auf dem Tisch entspricht, sondern durch die Geschwindigkeitseinstellungen im Treiber beschleunigt oder verlangsamt werden.
Dann gibt es noch eine nette Sache namens Mausbeschleunigung, die eine sinnvolle Messung der Strecke der Maus auf dem Schreibtisch per Software schlichtweg unmöglich macht, wenn man nicht die genauen Daten der Beschleunigungskurve im Treiber hat. Und da darf man den Treiberhersteller fragen, ob der antwortet, ist was anderes...
Aber theoretisch (ohne Beschleunigung) müsste man das Programm vorher kalibrieren, z.B. den Anwender auffordern 10 cm abzufahren und gucken, wieviele Pixel das waren und dann immer damit rechnen.
Wie's aber mit Hooks aussieht, wenn der Cursor am Bildrand ist und er noch weiter vom Bildschirm wegbewegt wird, weiß ich nicht. Wahrscheinlich wird das dann aber abgeschnitten, Fehlbereiche würden also wieder nicht in der Messung sein.

dopeline 30. Jun 2003 14:25

ich habe ein programm installiert (workrave) das misst die arbeitszeit am computer und mach noch ein paar sachen. unteranderem zeigt er die zurückgelegte entfehrnung (der maus auf dem bildschirm und der maus in echt auf dem tisch) in metern, die zeit, wieviel/wielange die maus bewegt wurde, mausklicks und tastenanschläge. und alles in echtzeit (aktuallisiert sich alle halbe sekunde)

und wie machen die das? das muss doch auch irgentwie mit delphi gehen!

Gruß, dopeline

Sanchez 30. Jun 2003 14:28

Ich denke mal, das Programm misst die Bewegung des Mauszeigers am Bildschirm. Das wäre nicht so problematisch zu realisieren.

mfg Daniel

[EDIT]Sorry hab das mit der Entfernung am Monitor und der Entfernung am Tisch überlesen. Also war das ein relativ sinnloses Posting[/EDIT]

tommie-lie 30. Jun 2003 15:46

Evtl, aber wirklich nur vielleicht, geht das über DirectInput.
Aber davon habe ich zu wenig Ahnung von nativem DirectX, um dir sagen zu können ob das geht und womit genau...

Luckie 30. Jun 2003 18:24

Man kann aber die zurückgelegte Strecke in Pixel in Meter umrechnen.

tommie-lie 30. Jun 2003 20:11

Warum das nicht geht, habe ich versucht zu erklären:
Man weiß nicht wieviel ein Pixel in Metern ist. Dieser Wert hängt von verschiedenen Einstellungen ab, zu denen man nicht immer Zugang hat.

Luckie 30. Jun 2003 20:14

Ich meine im Petzold steht drin, wie es geht. Ich habe ihn nur leider nicht zur Hand.

Gast 30. Jun 2003 20:21

IMHO nur möglich wenn man einen eigenen Maustreiber programmiert. Kann auch nur eine Art Miniport sein, welcher das dann an den Orginaltreiber weiterreicht, aber jedenfalls sind die Probleme da, welche von tommie-lie beschrieben wurden, solange man "oberhalb" des Treibers arbeitet (also etwas allgemeiner: im Usermode).

@Luckie: Damals gab es IMHO noch keine Treiber mit Beschleunigungsfunktion.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.
Seite 1 von 4  1 23     Letzte »    

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