Comment tout blaster dans les jeux flash :)
Voici le jeu du saut qui fait le tour du net :
http://www.koreus.com/files/200407/jeudelesaut.html
j'ai eu du mal a faire plus de 60 points et je me suis dit qu'il faisait tellement chaud aujourd'hui que s'exciter sur son clavier [dvorak ;) ] n'etait pas la bonne idee pour battre le record officiel de l'entreprise qui etait de 82 points !
C'est tellement plus rapide quand il y a un ordi qui fait le travail pour soi...
en C#:
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
private const int WM_KEYDOWN = 0x0100;
private const int VK_LEFT = 0x25;
private const int VK_UP = 0x26;
private const int VK_RIGHT = 0x27;
private const int VK_DOWN = 0x28;
/*
Changer le handle de fenetre 0x00020994
Utiliser spyxx.exe pour trouver le votre
*/
IntPtr win = new IntPtr(0x00020994);
for (int i = 0; i < 100; i++)
{
SendMessage(win, WM_KEYDOWN, VK_RIGHT, 0);
SendMessage(win, WM_KEYDOWN, VK_LEFT, 0);
}
for (int i = 0; i < 20; i++)
{
SendMessage(win, WM_KEYDOWN, VK_UP, 0);
SendMessage(win, WM_KEYDOWN, VK_DOWN, 0);
}
voila comment obtenir un score de 1619 a moindre mal :)
http://www.koreus.com/files/200407/jeudelesaut.html
j'ai eu du mal a faire plus de 60 points et je me suis dit qu'il faisait tellement chaud aujourd'hui que s'exciter sur son clavier [dvorak ;) ] n'etait pas la bonne idee pour battre le record officiel de l'entreprise qui etait de 82 points !
C'est tellement plus rapide quand il y a un ordi qui fait le travail pour soi...
en C#:
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
private const int WM_KEYDOWN = 0x0100;
private const int VK_LEFT = 0x25;
private const int VK_UP = 0x26;
private const int VK_RIGHT = 0x27;
private const int VK_DOWN = 0x28;
/*
Changer le handle de fenetre 0x00020994
Utiliser spyxx.exe pour trouver le votre
*/
IntPtr win = new IntPtr(0x00020994);
for (int i = 0; i < 100; i++)
{
SendMessage(win, WM_KEYDOWN, VK_RIGHT, 0);
SendMessage(win, WM_KEYDOWN, VK_LEFT, 0);
}
for (int i = 0; i < 20; i++)
{
SendMessage(win, WM_KEYDOWN, VK_UP, 0);
SendMessage(win, WM_KEYDOWN, VK_DOWN, 0);
}
voila comment obtenir un score de 1619 a moindre mal :)
10 Comments:
A bah bien, on voit qu'on bosse au travail !!!!!! sans blague !! lool trés cool comme jeu mais limite 'explosateurdeclavierkenmême' pas mal l'idée du wrapper qui fait à la place !!! j'ai pas testé (j'ai pas Csharp) si y a un ekivalent vb sa me tente (ou alor je ferais bien la conversion !!)
By Anonymous, at 7:34 pm
Salut, en effet, ca doit se convertir facilement en vb.net :) Poste la traduction pour que tous le monde en profite.
a+
By Francois Beaussier, at 7:45 pm
Je pensais plutot en vb, vu que la solution .Net est trop chere pour moi !!
By Anonymous, at 9:28 pm
Sa ne marche pas
Mince je galere !!! j'ai un pb voici le code :
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const VK_LEFT = &H25
Public Const VK_UP = &H26
Public Const VK_RIGHT = &H27
Public Const VK_DOWN = &H28
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Sub Main()
' handle de firefox : 0016040A
Dim HandleBwser As Long
Dim lngrep
HandleBwser = FindWindow(vbNullString, "Jeu Flash - Le Jeu de le Saut - Mozilla Firefox")
Dim i As Integer
For i = 0 To 100
lngrep = SendMessage(HandleBwser, WM_KEYDOWN, VK_RIGHT, 0&)
lngrep = SendMessage(HandleBwser, WM_KEYDOWN, VK_LEFT, 0&)
Next i
For i = 0 To 20
lngrep = SendMessage(HandleBwser, WM_KEYDOWN, VK_UP, 0&)
lngrep = SendMessage(HandleBwser, WM_KEYDOWN, VK_DOWN, 0&)
Next i
'MsgBox "terminé"
End Sub
By Anonymous, at 11:03 pm
Je trouve toujours pas !!
By Anonymous, at 11:36 pm
Salut,
le probleme c'est que tu envoies les touches a la fenetre IE alors qu'il faut l'envoyer directement a l'object flash...
Tu peux iterer sur les fils de la fenetre IE, trouver celui qui a pour class "Shell DocObject View" puis son fils "Internet Explorer_Server" puis son fils "MacromediaFlashPlayerActiveX". C'est au dernier fils qu'il faut envoyer les messages :)
j'utilise spyxx.exe pour avoir ces infos.
a+
By Francois Beaussier, at 1:02 am
J'ai réussi, mon code pour le SendMessage fonctionne juste que comme tu le disais, j'envoyais les infos au mauvais handle... j'ai finté en créant un exe avec le fichier flash sa m'a permis d'aller plus vite bilan : 1631.59 points !!
pardon aprés modification : je dépasse les 2000 points !!
en plus c'est un bon exo pour le travail des handles !!
By Anonymous, at 3:26 am
Bon de plus j'utilise non plus IE mais Firefox donc sa change pas mal au niveau des handles !!!!!
By Anonymous, at 3:27 am
J'ai poste une nouvelle news qui cherche le handle automatiquement. Idem, ca doit bien se traduire en vb ;)
a+
By Francois Beaussier, at 7:49 am
superbe code.
mais par curiosité, j'ai voulu le tester sur un jeu similaire et impossible de le faire marcher.
http://www.modus.renault.fr/egame/popup_surfing_modus.html?country=fr
pourtant je recupere bien le bon handler (spy++ ou ta fonction auto)
si t'as le temps de regarder :D
en tout cas bravo, idem pour le code ascii
By Anonymous, at 2:35 am
Post a Comment
<< Home