ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
1038
1038
EMPFEHLEN
-
Hi Leute,
wollte heute zwei Sachen testen.
1. Die Mausgeschwindigkeit (Geschwindigkeit des Mauszeigers) messen (Nicht SystemInformation.Mousespeed sondern wenn möglich die derzeitige Mausgeschwindigkeit in km/h oder m/s). Da ich keine einfache Methode finden konnte, habe ich mir die Formal v=s/t zur Hand genommen. Aber ich bin leider nicht draufgekommen, wie ich den zurückgelegten Weg s in VB.NET berechnen kann... Eventuell könnte mir da jemand helfen, sodass das Programm mir am Ende immer die derzeitige Mausgeschwindigkeit in km/h, m/s oder einer sonstigen Einheit anzeigt.
2. Auslesen, welche weiteren Prozesse/Programme auf einen vordefinierten Prozess Zugriff ausüben/mit diesem kommunizieren. Also ich sage zum Beispiel dem Programm, es soll den Prozess "xyz.exe" überprüfen und das Programm schreibt mir in eine Listbox alle Prozesse/Programme, die mit "xyz.exe" kommunizieren.
Ich würde mich über eine hilfreiche Antwort sehr freuen,
Markus
-
Zu 1:
DIe Mausgeschwindigkeit kannst du mit Hilfe eines Maus-Hooks messen. Über den Hook bekommst du jede Änderung der Mausposition mit; dann brauchst du bloß noch die Zeitdifferenz zwischen zwei Änderungen messen und die zurückgelegte Strecke berechnest du einfach über Pythagoras.
Hier sind zwei Links zu Hooks:
http://www.codeproject.com/KB/cs/globalhook.aspx
http://support.microsoft.com/default...b;en-us;318804
Zu 2:
Keine Ahnung.hihi = -h²
-
Kay vielen Dank, habs nun doch ziemlich einfach gelöst:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick TextBox1.Text = MousePosition.X TextBox2.Text = MousePosition.Y Timer2.Enabled = True End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Timer2.Enabled = False TextBox3.Text = MousePosition.X TextBox4.Text = MousePosition.Y TextBox5.Text = (System.Math.Sqrt((TextBox3.Text - TextBox1.Text) ^ 2 + (TextBox4.Text - TextBox2.Text) ^ 2)) If TextBox5.Text > 1300 Then MsgBox("Alert!", vbCritical, "Warning") End If End Sub
Pythagoras kann man doch überall verwenden
Die Ausgabe dürfte in Pixel pro 0.1 Sekunden sein. Eine Frage hätte ich trotzdem, angenommen der Mauszeiger ist in der Mitte fixiert (wie bei Ego-Shootern, beispielsweise Counter-Strike), wie könnte ich dann die Geschwindkeit der Maus ermitteln?
Btw, das lässt sich doch so auf jeden Computer oder? Da ja die Pixel wahrscheinlich überall die gleiche Größe haben?
Zu 2. habe ich leider noch immer nichts gefunden... Jedenfalls vielen Dank.
MfG
MarkusGeändert von Afritus (01.04.10 um 10:26 Uhr)
-
01.04.10 11:08 #4
- Registriert seit
- Jul 2004
- Ort
- Deutschland
- Beiträge
- 95
Hallo Afritus,
das klingt für mich fast nach einem Anticheat was du da Programmieren möchtest
Ich habe hier ein stück alten Code gefunden, der sollte genau das machen was du suchst. Er is allerdings in C#, sollte aber problemlos in VB.NET konvertiert werden können.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
static void Main(string[] args) { Console.Write("Enter your process: "); string proc = Console.ReadLine(); Process myProcess = new Process(); // Get the process start information of notepad. ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(proc); // Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' object. myProcess.StartInfo = myProcessStartInfo; // Create a notepad. myProcess.Start(); System.Threading.Thread.Sleep(1000); ProcessModule myProcessModule; // Get all the modules associated with 'myProcess'. ProcessModuleCollection myProcessModuleCollection = myProcess.Modules; Console.WriteLine("Base addresses of the modules associated " + "with " + proc + " are:"); // Display the 'BaseAddress' of each of the modules. for (int i = 0; i < myProcessModuleCollection.Count; i++) { myProcessModule = myProcessModuleCollection[i]; Console.WriteLine(myProcessModule.ModuleName + " : " + myProcessModule.BaseAddress); } // Get the main module associated with 'myProcess'. myProcessModule = myProcess.MainModule; // Display the 'BaseAddress' of the main module. Console.WriteLine("The process's main module's base address is: " + myProcessModule.BaseAddress); myProcess.CloseMainWindow(); Console.Read(); }
Mfg
-
Du hast richtig geraten, napstermania
Ich programmiere EML-Umbrella, das Anti-Cheat-Programm der EML (www.esport-masters.com). Die wichtigsten Funktionen stehen schon, sogar der Login mit dem Account funktioniert. Und nun bin ich eben dabei, ein paar neue Erkennungsmethoden hinzuzufügen
Vielen Dank für den Code, ich habe ihn nun so umgeschrieben, dass er Kommunikationen von einem schon gestarteten Prozess ausliest
Also 2. ist erledigt. Bleibt nur noch offen, wie ich nun die Mausgeschwindkeit in einem Ego-Shooter messe, bei dem der Mauszeiger ja in der Mitte fixiert ist...Geändert von Afritus (01.04.10 um 13:37 Uhr)
-
01.04.10 13:44 #6
- Registriert seit
- Jul 2004
- Ort
- Deutschland
- Beiträge
- 95
Ich helfe gerne wenn es um sowas geht

Allerdings wirst du mit dieser methode einen "gut" programmierten cheat nicht finden, da diese sich selbst wieder aus der Modulliste löschen. Sprich er wird in dieser Liste nicht auftachen. Um solche Software zu erkennen musst schon etwas tiefer in die Software gehen als nur die Prozessmodule zu betrachten.
In den meisten Fällen werden sogennante inline Hook's verwendet um die Software (in deinem Fall CSS) zu manipulieren. Ich habe hier zwei links für dich, welche du dir mal zu gemüte führen soltlest. Hier wird beschrieben wie man diese "Inline-Hooks" ausfindig machen kann. Damit packst du das über an der Wurzel
http://www.diamondcs.com.au/dse/dete...ifications.php
http://www.diamondcs.com.au/dse/detections.php
Ich hoffe ich konnte dir da etwas weiter helfen.
PS: Du solltest dich für solche Art von Software lieber für eine mächtiger Sprache entscheiden(z.B. C/C++). Aber eine DLL mit einfachen C-Code kann man in VB.NET bestimmt genauso leicht einbinden wie in C#
-
Wow, du scheinst dich ja in diesem Sektor gut auszukennen

Werde mir die zwei Links auf jeden Fall durchlesen!
BTW: Wir suchen Leute, die sich mit der Entwicklung des Anti-Cheat-Programmes beschäftigen. Bezahlen können wir leider nichts, ich arbeite auch kostenlos dran. Aber wenn du Interesse hast, würde ich mich sehr freuen!
Meine ICQ ist: 461524105
Ähnliche Themen
-
Mausgeschwindigkeit ändern
Von SpongeBernd im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 15.12.06, 16:37 -
Mausgeschwindigkeit
Von fryfan im Forum Cinema 4DAntworten: 1Letzter Beitrag: 19.07.06, 23:18 -
Zugriff auf laufende Excel-Prozesse
Von jayel im Forum .NET ArchivAntworten: 7Letzter Beitrag: 07.06.05, 16:01 -
Zugriff auf Prozesse mit Java
Von V4mp1r3 im Forum JavaAntworten: 1Letzter Beitrag: 04.06.05, 23:09 -
Mausgeschwindigkeit und Premiere Pro
Von Joh im Forum Videoschnitt, Videotechnik & -produktionAntworten: 3Letzter Beitrag: 29.06.04, 12:57





Zitieren
Login





