tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1038
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Afritus Afritus ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    54
    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
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    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²

  3. #3
    Afritus Afritus ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    54
    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
    Markus
    Geändert von Afritus (01.04.10 um 10:26 Uhr)
     

  4. #4
    napstermania napstermania ist offline Mitglied Silber
    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
     

  5. #5
    Afritus Afritus ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    54
    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)
     

  6. #6
    napstermania napstermania ist offline Mitglied Silber
    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#
     

  7. #7
    Afritus Afritus ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    54
    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

  1. Mausgeschwindigkeit ändern
    Von SpongeBernd im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 15.12.06, 16:37
  2. Mausgeschwindigkeit
    Von fryfan im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 19.07.06, 23:18
  3. Zugriff auf laufende Excel-Prozesse
    Von jayel im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 07.06.05, 16:01
  4. Zugriff auf Prozesse mit Java
    Von V4mp1r3 im Forum Java
    Antworten: 1
    Letzter Beitrag: 04.06.05, 23:09
  5. Mausgeschwindigkeit und Premiere Pro
    Von Joh im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 3
    Letzter Beitrag: 29.06.04, 12:57