AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FRAGE]Mousometer

Ein Thema von XXcD · begonnen am 27. Sep 2009 · letzter Beitrag vom 27. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

[FRAGE]Mousometer

  Alt 27. Sep 2009, 18:43
Hallo,
ich habe hier nen kleines Display von Alphacool und dachte mir jetzt wäre cool wenn mir darauf die zurückgelegte Strecke der Maus angezeigt wird.
Nun habe ih in Win 7 diese kleine App die sich Mousometer nennt.

Jetzt zu meiner Frage, kann ich diese Minianwendungen in Windows irgendwie auslesen und die Werte dann auf dem Display ausgeben
oder sollte besser einen eigenen Algorithmus dafür schreiben?
  Mit Zitat antworten Zitat
jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#2

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:08
Das Auslesen kannst du wahrscheinlich mittels der Debug Funktion ReadProcessMemory(...)

Du musst natürlich wissen, wo der Wert in dem Speicher von dem anderen Programm steht. Dazu kannst du zb. TSearch benutzen.
Also du solltest nun mal bei google nach Beispielen für die Anwendung von ReadProcessMemory suchen und nach TSearch.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#3

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:22
Im Grunde kannst du es doch selber auslesen/ausrechen?

globaler Maus-Hook

und dann mußt du nur noch die Pixel in cm umrechen (aber wurst du dir selber den Wert ermitteln müssen, da dieses ja bei nahezu Jedem unterschiedkich ist ... via Calibierung, also z.B. einfach die Maus 10cm verschieben und die Pixel zählen).

PS: http://www.svenbader.de/software_dow...mausometer.htm
das ist dahingehend "Schwachsin, da der Name falsch ist.

Der ermittelt mämlich in etwa die Werte des Mauszeigers, aber nicht der "Maus"
> viele Gamer haben eine sehr empfindliche und hoch eingestellte Maus, welche sich also vie schneller bewegt, als der Mauszeiger und dabei weniger Strecke zurücklegt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#4

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:29
Hmm also die größe der pixel kann man ja bestimmen indem man weiß wie groß der monitor ist und die auflösung.

Wenn sich die Maus schneller bewegt dann kann man da doch die dpi zahl mit einrechnen oder sehe ich das falsch?

PS: So wie ich das sehe wird der Wert vom Mousometer irgendwo gespeichert, da nach einem neustart der gesamtwert ja weiter läuft.
Kann man irgendwie rausfinden wo die Daten gespeichert werden?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#5

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:43
Du kannst bei dem verlinken Tool einstellen, daß er es in einer INI (im Programmverzeichnis) speichern soll, ansonsten würde ich mal in der Registrie suchen.

Aber da wird natürlich vermutlich nie der grad aktuelle Wert drinstehn.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#6

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:52
Hmm ja mit ner Ini das ist glaube ich nicht so das wahre.
Ich habe mir jetzt gerade nochmal den Code von dem Gadget genau angesehen und die Funktion gefunden die die Strecke speichert:

Code:
function updateval() {
 var posi=new Object()
 //var datum2 = new Date()
 //zeit3 = datum2.getTime();
 posi.x=window.event.screenX; posi.y=window.event.screenY;
 if (x2==-1 | y2==-1) { x2=posi.x; y2=posi.y; }
 else {
   x = posi.x; y = posi.y;
   if (Math.abs(x) > 5000) x=0; //wegen bug
   if (Math.abs(y) > 5000) y=0; //wegen bug
   spd = (Math.sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2)) *10) /fs *0.036; // cm/sek -> km/h
   if(spd>topspd) {
    topspd=spd;
   System.Gadget.Settings.write("topspd", topspd);
   }
   wert += Math.sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
   wertHeute += Math.sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
   x2 = x; y2 = y;
   m = (wert/f);
   mHeute = (wertHeute/f);

   mstr = formatstr(m) ;
   mHeutestr = formatstr(mHeute) ;

   if ((m2 != m) ||  ( werte[3]!="0,00 km/h")) {
     if (tag()!= datum) { //tag gewechselt
       wertHeute = 0;
      datum = tag();
       System.Gadget.Settings.write("datum", datum);
       System.Gadget.Settings.write("wertHeute", wertHeute);
     }
     System.Gadget.Settings.write("wert", wert); //suboptimal             <---------Hier wird die Strecke gespeichert
     System.Gadget.Settings.write("wertHeute", wertHeute); //suboptimal    <---------Und hier die gesamte
     werte[1] = mstr+" m";
     werte[2] = mHeutestr+" m";
     werte[3] = spd.toFixed(2).toString().replace(".", ",")+" km/h";
     werte[4] = topspd.toFixed(2).toString().replace(".", ",")+" km/h";
     werte[5] = (m/40075000).toFixed(6).toString().replace(".", ",");
     m2 =m;
     document.getElementById("wert").firstChild.nodeValue   = werte[z1];
     document.getElementById("spd").firstChild.nodeValue    = werte[z2];
     document.getElementById("topspd").firstChild.nodeValue = werte[z3];
   }
 

}
}
Vielleicht hat sich damit schonmal einer beschäftigt und hat da eine Idee wie ich von ausserhalb auf genau diese Variablen zugreifen kann.
Also im RAM suchen wäre ja jetzt eine Möglichkeit aber vielleicht gibt es auch direkt eine Möglichkeit die Microsoft zur Verfügung stellt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#7

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 19:58
Ach du meine Güte, ist das "schlecht" ... da gehen ja einige Mausbewegungen unter/verloren oder werden falsch ermittelt

Nja egal ... mach es doch selber (wie schon gesagt)

Ideal wäre eigentlich ein Maus-Hock (findet man hier in der DP auch einiges zu diesem Thema)

oder du machst es so wie in dem Code.


Mouse.CursorPos aus der Unit Controls
oder direkt die WInAPI MSDN-Library durchsuchenGetCursorPos aus der Unit Windows
und die restlichen Berechnungen hast du ja in dem Code auch schon drin.
(das Ganze wird dort über einen Timer ausgewertet, was bei schnellen Bewegungen/Richtungswechseln natürlich "falsche" Meßwerte ergibt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#8

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 20:07
Ja ich glaube ich mache das auch selber die Koordinaten auslesen ist ja kein Problem aber muss mir mal gedanken machen die strecke zu berechnen
Wenn ich da nicht weiter komme frage ich nochmal nach aber danke schonmal für die Infos
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#9

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 20:15
Zitat von XXcD:
Wenn ich da nicht weiter komme frage ich nochmal nach aber danke schonmal für die Infos
> Satz des Pythagoras
> Delphi-Referenz durchsuchenSqr und Delphi-Referenz durchsuchenSqrt (die Formel wird 3-mal da oben berechnet ... einmal hätte ja auch gereicht )
> und übersetzt dir nicht unbedingt den Code direkt

nimm 'nen Timer mit vielleicht 10-20ms (weniger schaft der eh nicht)
und für die Geschwindigkeitsberechnung bietet sich Delphi-Referenz durchsuchenGetTickCount oder Delphi-Referenz durchsuchenNow an
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Clemens L.

Registriert seit: 27. Apr 2008
35 Beiträge
 
Delphi 2009 Architect
 
#10

Re: [FRAGE]Mousometer

  Alt 27. Sep 2009, 21:21
Stichwort DPI (Dots per Inch), kann man auslesen. Musste sowas schon selber machen, keine große Sache eigentlich.
Clemens
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:31 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