[..] Autoit et DirectX

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Konimas
Niveau 1
Niveau 1
Messages : 1
Enregistré le : mer. 21 sept. 2016 12:38
Status : Hors ligne

[..] Autoit et DirectX

#1

Message par Konimas »

Bonjour à tous,

Pour placer un peu le contexte, je joue à un jeu se nommant FlyFF et dans ce jeu il est possible de masque tout l'IHM en appuyant sur la touche " * " (la touche multiplier) du pavé numérique. Cette fonctionnalité permet de pouvoir prendre des vidéos plus jolies qu'avec tous les menus du jeu.

Mon problème et le suivant : Je ne possède qu'un PC portable et je n'ai pas de pavé numérique et donc pas cette fameuse touche ...

Ma solution : programmer une nouvelle touche qui elle est présente sur mon clavier (F11) pour qu'elle est la même fonctionnalité.

Mon problème de ma solution (Si ça me parait être une phrase pleine de sens !) : Le jeu ne reconnait pas l'appuie de la touche par Autoit.

Mon code :
#RequireAdmin

#include <Constants.au3>
#include <GUIConstantsEx.au3>

HotKeySet("{F11}", "masquerIHM")

While 1
    Sleep(100)
WEnd


Func masquerIHM()
   $handle = WinGetHandle("FLYFF");
   ConsoleWrite($handle) ;ça m'affiche le bon Handle
   $res = ControlSend( $handle, Default, $handle,"*")
   ConsoleWrite($res) ;ça renvoie 1
EndFunc
Dans mon blocnote j'ai bien l'asterix qui s'affiche, dans le jeu rien ne se passe. Le problème vient probablement de DirectX mais je ne trouve aucune solution qui marche sur le Web. Avez-vous une idée ?
amphase
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 30 août 2016 00:28
Status : Hors ligne

Re: [..] Autoit et DirectX

#2

Message par amphase »

Bonsoir,

Si j'en crois Adobe, pour ActionScript (langage de FlashPlayer), la valeur ASCII (décimale) 106 est utilisée pour '*' au lieu de 42 (sa valeur normale, saisie indifférement sur le clavier alpha ou le numpad).
106 correspond à un 'j' minuscule. As-tu essayé de taper 'j', directement au clavier ?

Si c'est inopérant, un encodage sur 2 octets, '0' + '*', soit :
$sNumKbMult = Chr(0) & Chr(42)
C'est hasardeux, mais je n'ai pas mieux pour le moment. :|
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Autoit et DirectX

#3

Message par orax »

Il faudrait aussi essayer avec {NUMPADMULT} (ça correspond à la touche * du pavé numérique).
$res = ControlSend( $handle, "", "", "*")
$res = ControlSend( $handle, "", "", "{NUMPADMULT}")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre