Cheaten bei #Facebook-Mini-Apps

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.

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.
„Cheaten bei #Facebook-Mini-Apps“ weiterlesen

MS VS 2010 & MS-FW 4 – Kurzinfo

Viele weitere Verbesserungen wie Code Contract, Event Tracing for Windows, Security Verbesserungen findest du in der MSDN Library.

Hallo,


Ich habe mich in letzter Zeit mit dem VS 2010 und Framework 4 beschäftigt.

Und ich kann nur sagen es hat sich was getan! Und zwar das erste mal soviel das ich es wage darüber zu schreiben. .Net Entwicklung mit dem Framework 3.5 und VS 2008 war gut und schön. WPF Entwicklung mit dem VS 2008 war aber eine Zumutung, zu mindestens meiner Meinung nach. Dank VS 2010 und einer deutlich überarbeiteten Vorschauansicht bzw. Designeransicht bei WPF Applikationen macht mir das Entwickeln von WPF Oberflächen fast schon Spaß obwohl ich XML immer noch nicht mag!

Das Framework 4 hat einige positive Verbesserung in Sicht auf WPF und Webentwicklung mit ASP.NET AJAX Klassen, welche sich zeigen lassen können!
„MS VS 2010 & MS-FW 4 – Kurzinfo“ weiterlesen