Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Beschleunigung der Maus herausfinden (https://www.delphipraxis.net/9630-beschleunigung-der-maus-herausfinden.html)

Niels_ 30. Sep 2003 14:40


Beschleunigung der Maus herausfinden
 
Hallo,

ich habe vor ein kleines Programm zu schreiben und wollte nun gerne mal wissen, ob es möglich ist, die Beschleunigung der Maus herauszufinden (wenn ja: WIE ;-))!

TMouse macht das ja nicht mit - der sagt mir nur wo die maus ist. Also bräuchte Beschleunigung und Sensivity...

Hat jemand ne Idee?

Dagon 30. Sep 2003 14:49

Re: Beschleunigung der Maus herausfinden
 
Wenn es möglich ist, dann kannst du die Beschl. so ausrechnen:

a = (2*s)/(t*t)

wobei s die Strecke ist und t die dafür benötigte Zeit.
Du müsstest also für s den Abstand zweier Koordinaten nehmen und für t die Zeit, die die Maus brauch, um diese Strecke s zurückzulegen.

Aber ob das in der Praxis geht, weiss ich nicht.

Niels_ 30. Sep 2003 15:13

Re: Beschleunigung der Maus herausfinden
 
Das war mir schon klar, jedoch wollte ich nicht diese Beschleunigung herausfinden..

Sondern eher die der Maus. Also dass sich die Maus mehr bewegt (auf dem Bildschirm), wenn man sie auf dem selben Abstand auf dem Mousepad bewegt - je nachdem WIE SCHNELL man sie bewegt!

Ansonsten danke..

Luckie 30. Sep 2003 15:17

Re: Beschleunigung der Maus herausfinden
 
Müßte in der Registry stehen. Aber der Wert dürfte da von abhängig sein, wie ihn der Treiber interpretiert, ob damit dann was anfangen kann ist eien andere sache.

Niels_ 30. Sep 2003 15:57

Re: Beschleunigung der Maus herausfinden
 
Und wo da??

anku 30. Sep 2003 16:39

Re: Beschleunigung der Maus herausfinden
 
HKEY_CURRENT_USER\Control Panel\Mouse\MouseSpeed

hat ca 5 min gedauert um es rauszusuchen, ohne doku, nur mit regedit...

MfG

Robert Marquardt 1. Okt 2003 06:40

Re: Beschleunigung der Maus herausfinden
 
Code:
var
  Vals: array [0..2] of Integer;
begin
  Vals[0] := 0;
  Vals[1] := 0;
  Vals[2] := 0;
  SystemParametersInfo(SPI_GETMOUSE, 0, @SystemSpeed[0], 0);
  //...
  SystemParametersInfo(SPI_SETMOUSE, 0, @Vals[0], SPIF_SENDCHANGE);
So gehts richtig, aber es taugt nicht wirklich. Viele Maustreiber implementieren ihre eigene private Beschleunigungskurve.

helgew 9. Mär 2010 18:33

Re: Beschleunigung der Maus herausfinden
 
dann wollen wir doch mal diesen Thread mal erwecken:

"So gehts richtig, aber es taugt nicht wirklich. Viele Maustreiber implementieren ihre eigene private Beschleunigungskurve. "

startet man "main.cpl Maus", erhält man das control panel, welches eine Vorschau der Mausbeschleunigung unterstützt. Da ich von meinem Programm aus Mausbeschleunigungswerte verwalten möchte, hätte ich den Wert gerne ausgelesen. Leider ist bei SystemParametersInfo(SPI_GETMOUSE,0,@array,0) dermaßen der Wurm drin, dass fast immer 0, 0, 0 zurückgegeben wird (für threshold1, threshold2 und speed).

Ist das jetzt ein Witz oder einfach nur Windows?

hathor 9. Mär 2010 19:08

Re: Beschleunigung der Maus herausfinden
 
MouseSensitivity 1 bis 20

Delphi-Quellcode:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Mouse]
"ActiveWindowTracking"=dword:00000000
"DoubleClickHeight"="4"
"DoubleClickSpeed"="500"
"DoubleClickWidth"="4"
"MouseSensitivity"="18"
"MouseSpeed"="1"
"MouseThreshold1"="6"
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,15,6e,00,00,00,00,00,00,00,40,\
  01,00,00,00,00,00,29,dc,03,00,00,00,00,00,00,00,28,00,00,00,00,00
"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,b8,5e,01,00,00,00,00,00,cd,4c,\
  05,00,00,00,00,00,cd,4c,18,00,00,00,00,00,00,00,38,02,00,00,00,00
"MouseThreshold2"="10"
"SnapToDefaultButton"="1"
"SwapMouseButtons"="0"
"MouseTrails"="0"

helgew 9. Mär 2010 19:22

Re: Beschleunigung der Maus herausfinden
 
Sorry, aber das ist genausoweit gefehlt.

Weder interessiert sich windows für die settings unter diesem Registryschlüssel, noch werden die Werte beim Neustart übernommen. Das Mapping ist unter
"HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\IniFileMapping\win.ini\Windows" zu finden und die Referenz auf diesen Wert ist mit
#USR:Control Panel\Mouse
schlichtweg auskommentiert. Fazit: der Spaß wird (ggf. ab neueren Versionen oder generell für USB-Mäuse) anders gelöst und das steht weder bei NtQuerySystemInformation noch bei SystemParametersInfo noch bei Artikeln, die auf die Registryeinträge Bezug nehmen. Die dort gespeicherten Werte werden wohl bloß der Abwärtskompatibilität wegen vorgehalten.

Ein hoch auf gute Dokumentation :wall: :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 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