Cheaten bei #Facebook-Mini-Apps

Hi,

Da ich lang keinen Code mehr veröffentlicht habe muss jetzt mal wieder was herhalten.
Heute habe ich mal meine Facebook™-Pinnwand voll gespamt mit zwei kleinen Spielen. Das erste nennt sich Wie schnell kann man in 10 Sekunden klicken? und das andere nannte sich Tastatur Zertrummern.

Also zum Ersten.
Hier geht es ganz einfach darum so oft wie irgendwie möglich auf einen Button im Web zu machen. Damit ich das so einfach mal schnell Programmieren konnte braucht ich eine Programmiersprache. Dazu fiel mir spontan .Net ein. Also alles in C# programmiert.

// .Net Standard Verweis
using System;
// .Net Verweis zum einbinden von DLL's
using System.Runtime.InteropServices;
// .Net Verweis für Objekte wie z.B. Cursor bzw. Screen
using System.Windows.Forms;
// ApplicationsName / Namespace
namespace ClickApplication
{
// Klassenname
    class clsClick
    {
        // Windows Konstanten für Mouse Down bzw. Up
        private const Int32 MouseEventLeftDown = 0x0002;
        private const Int32 MouseEventLeftUp = 0x0004;

        /* DLL Verweis auf die User32.dll zum Importieren der
        /       mouse_event Funktion                      */
        [DllImport("user32", EntryPoint = "mouse_event")]
        private static extern void mouse_event(UInt32 dwFlags,
                                               UInt32 dx,
                                               UInt32 dy,
                                               UInt32 dwData,
                                               IntPtr dwExtraInfo);

        // Start Punkt
        static void Main(string[] args)
        {
            /* Cursor Position herausfinden und auf API Schnittstellenfunktion
            /  übertragen ( * 65535 / Primärmonitor(Breite/Länge)) */
            UInt32 cur_x = Convert.ToUInt32(Cursor.Position.X * 65535
                                            / Screen.PrimaryScreen.Bounds.Width);
            UInt32 cur_y = Convert.ToUInt32(Cursor.Position.Y * 65535
                                           / Screen.PrimaryScreen.Bounds.Height);

            /* Jeder Schleifendurchgang ist ein Klick
            /  (10k Klicks (kann lang dauern)) */
            for (int i = 0; i < 9999; i++)
            {
                /* Einmal MouseEvent ausführen mit Down + Up für
                / Beide Events, und einem Neuen Pointer als Event Verweis */
                mouse_event(MouseEventLeftDown + MouseEventLeftUp,
                            0, 0, 0, new System.IntPtr());
            } // End For
        } // End Main
    } // End Class
} // End Namespace

Nachdem das dann geschrieben war, habe ich gemerkt das es ziemlich gemächlich ausgeführt wird und man in 10 Sekunden nicht über 500 Klicks hinauskommt mit C#. Also VB.Net Test, naja wie zu erwarten -> genauso langsam!

Was bleibt als Alternative? – Java? C++? Scriptsprache?
Also Java habe ich einfach noch nie API aufrufe gemacht geschweige denn irgendwas vergleichbares versucht…
Mit Scriptsprachen habe ich keinerlei positive Erfahrungen sobald irgendwas Richtung Maus geht, aber ich glaub Klicks sind einfach nichts für Scripte.
Also C++ bzw. C Classic.

// API Verweis
#include <windows.h>

// Konstanten Einbindung
using namespace std;

// Start Punkt
int main()
{
       // Umso Größer der Datentyp umso
       //  schneller die For Schleife! (deswegen !Long!)
       long iCnt;
       // Bis wohin => Egal dementsprechend wie viele Klicks du haben möchtest.
       for(iCnt = 0; iCnt < 1234; iCnt++)
       {
              // Mouse Event ist das gleiche wie in C# nur
              //  das wir keinen Pointer angeben MÜSSEN.
              mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
              // Die zwei Konstanten kommen genau wie die
              // Funktion selbst aus der windows.h
              // Die restlichen 4 Parameter können z.b. bei
              // MouseeventF_Move die Position des Mauszeigers ändern.
       }
// Return da int Main()
return 1;
}

Also damit getestet und zwar erfolgreich! Hat super geklappt, Mauszeiger auf den Button und schon kommen unglaubliche werte innerhalb von 10 Sekunden zusammen.

So das jetzt mal zur ersten App. Jetzt kommen wir zu der anderen, da war klar was ich brauche:

SendKeys

Damit war die Sache gegessen, schnelles VB-Script runter geschrieben ablaufen lassen, FERTIG.

   REM Generierung eines WScript >> Shell Objektes Namens "objShell"
   SET objShell = WScript.CreateObject("Wscript.Shell")
   REM Schleife über 1001 Elemente
   FOR iCnt = 0 TO 1000
          REM Ohne ein Päuschen gibt es
          REM  einen Überlauf... also "Sleep"!
          WScript.Sleep 50
          REM Dann nur noch irgendwelche
          REM Buchstaben versenden schon Passt die Sache!
          objShell.SendKeys("abcdefghijklmnopqrstuvwxyz")

   REM Schleifen abschluss
   NEXT

So das war es für heute von meiner Seite viel Spaß mit den Kleinen Scripten.

Hier noch ein paar Hinweise

VBs Scripte Erstellen

  1. Notepad öffnen
  2. Quellcode Schreiben
  3. Speicher unter *.vbs
  4. Datei ausführen
  5. Klappt nur unter Windows so problemlos

C# Projekt erstellen

  1. Visual Studio 2010 C# Express herunterladen und Installieren (falls nichts vergleichbares vorhanden).
  2. Visual Studio 2010 Nutzen und Neues C# Projekt „Konsolenanwendung“ erstellen
  3. Minimal .NET Framework 2.0

C Programm erstellen

  1. Downlaod C Compiler z.B. MinGW Installer
  2. Notepad Coden
  3. *.c speichern oder *.cpp
  4. Compiler aufrufen mit *.c File, und *.exe erstellen!

Optional auch das DEV C++ Studio von bloodshed.net nutzbar

Grüßle
Sméagol

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

WordPress Cookie Hinweis von Real Cookie Banner