Page 1 sur 1

recherche logiciel (joystick)

Publié : ven. janv. 26, 2007 11:15 am
par Nigo
bonjour,

vous vous souvenez du bouton Shift sur les anciens joystick Microsoft, le meme qui permettait de doubler le nombre de boutons assignables et qui a disparu sur la version USB ?

je cherche un logiciel qui fasse éxactement ca : à partir d'une COMBINAISON de bouttons joystick (ex. 1 + 2 + 4) simule une COMBINAISON clavier (ex. Shift + Ctrl + X), selon un certain profil évidemment. Je connaissais des logiciels géneriques qui faisaient un bouton = une touche clavier mais on va pas loin avec ca...

si jamais ca n'existe pas, je suis sur le point d'en programmer un. Mes connaissances en programmation Windows étant très limitée, je sais pas si j'arriverais au bout mais je vais perseverer ;)

Publié : ven. janv. 26, 2007 11:22 am
par Azrayen
Hello :)

Tu veux faire ça pour quel joystick ?
Je demande car pour ça existe déjà pour de nombreux HOTAS fournis avec un soft de programmation (ex : le SST chez Saïtek pour les X-36/45/52, il en existe un aussi pour le Cougar de Thrustmaster).

A savoir : Certains simus permettent aussi d'assigner une fonction "shift" à un bouton du joy, même pour les joys non programmables (me souviens d'avoir émulé le [CTRL] sur un Thrustmaster Aftherburner II avec les options de LO : FC).

@++
Az'

Publié : ven. janv. 26, 2007 11:32 am
par Nigo
j'ai un MS Sidewinder USB. Il y a un soft de programmation mais il ne permet pas de faire des combinaisons de boutons
j'ai aussi un Saitek Cyber Evo et c'est pire

si votre pilote permet ca évidemment plus d'interet mais l'idée est de faire un logiciel génerique qui marche pour n'importe quel joystick et jeu... theoriquement ;)

Publié : ven. janv. 26, 2007 12:14 pm
par Flaps
Pour le CyborgEvo tu a un log de programmation (le SST comme t'as dis Az') qui est tout de meme puissant..:)

Publié : lun. janv. 29, 2007 9:33 am
par Nigo
j'ai trouvé mon bonheur avec autohotkey
http://www.autohotkey.com/

Publié : lun. janv. 29, 2007 10:52 am
par Furie
ça a l'air interessant, mais j'y bitte pas grand chose... :huh:
si tu arrives a le faire fonctionner, pourrais tu poster un exemple histoire de voir ce qu'on peut faire avec ?
merci d'avance. :king:

Publié : lun. janv. 29, 2007 11:06 am
par Nigo
ok je posterais ca demain

Publié : mar. janv. 30, 2007 12:51 pm
par Nigo
installer autohotkey, renommer il2.txt en il2.ahk, double cliquer dessus et hop le profil est chargé

j'explique un peu : c'est un langage de script donc il y a plusieurs moyen d'arriver au meme résultat. Là j'ai décidé d'utiliser 2 boutons de shift, le 5 et le 6, et la combinaison des deux comme un 3e shift. J'ai 4 fonctions, SHIFT1, SHIFT2, SHIFT3 et NOSHIFT, qui indiquent dans quel statut on se trouve

l'appui d'un bouton est un évemenent, par exemple l'appui du second bouton du premier joystick appelle l'évenement "1joy2". Dans ce cas, si je ne suis pas en shift je tire au canon, si je suis en shift1 je sors/rentre le train, et si je suis en shift2 j'apelle la vue externe

enfin, le POV n'étant pas évenementiel, j'apelle la fonction WatchPOV toutes les 100ms

(ne faites pas gaffe au fait que mes raccourcis clavier ne correspondent pas à ceux par défaut, j'ai pas mal bricolé...)

Publié : mar. janv. 30, 2007 4:52 pm
par Furie
c'est destiné a quel joystick en particulier ?
un crosoft FFB2 ?
en tout cas merci, m'en vais essayer (bidouiller ?) ça... :king:

Publié : mar. janv. 30, 2007 7:31 pm
par Nigo
la oui mais c'est facile de l'adapter à n'importe quel joy. Apres c'est des questions d'ergonomie...

Publié : mar. janv. 30, 2007 9:45 pm
par Furie
bon, j'ai besoin de toi :

1-comment faire un script pour que si un bouton de joy est mappé sur la touche "a", un appui continu sur la touche du joy corresponde a une action continue sur "a" tant que je ne relache pas le bouton ?
pour étre plus clair, admettons que la touche "a" corresponde dans le jeu au trim direction a droite.
J'arrive a faire une action 1Joy2::Send {a} =>quand j'appuie sur le bouton 2 du joy 1, ça me fait "a" une fois, meme si je maintient appuyé a l'infini.
pour ça 1Joy2::Send {a 10} => quand j'appuie sur le bouton 2 du joy 1, ça me fait "a" 10 fois
mais ces 2 exemples ne me permettent pas d'avoir "a" a l'infini tant que j'appui sur le bouton (comme si je voulais avoir : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) pour me permettre d'avoir une action sur le trim continu en maintenant appuyé le bouton et sans avoir a appuyer-relacher-appuyer-relacher-etc...


2-j'arrive avec un script a lancer un programme fenetré (bombsight, utilitaire pour calculer l'angle du viseur en fonction de la vitesse et altitude). Cette fenétre s'affiche par dessus le jeu mais ce que je voudrais c'est pouvoir fermer ou au moins reduire cette fenétre/application.
j'ai donc ce script qui me lance bombsight :
1Joy2::
Run, C:\Program Files\Bombsight Table 2\Bombsight Table 2.exe

comment faire pour arreter ou reduire ce programme ???

3-comment faire pour obtenir un "cycle" de fonctions pour une meme touche du joy : j'appuie sur le bouton 2, ça me fait la touche "a", je relache et je reappuie sur le bouton 2 , ça me fait la touche "b", je relache et je reappuie sur le bouton 2, ça me fait la touche "c", je relache et je reappuie sur le bouton 2 , ça me fait la touche "a" ???

merci d'avance si tu peux repondre a ces 3 questions :king:

Publié : mer. janv. 31, 2007 12:03 pm
par Nigo
1 )
1Joy2::
Send {a down}
KeyWait 1joy2
Send {a up}

2)
je sais pas. Il éxiste peut etre une commande pour killer un programme Windows...

3)
ah, tu m'interesses, j'y avais meme pas pensé ;)
solution explicite

; initialisation
touche = 0
return

1Joy2::
if touche = 0
{
Send {a down}
KeyWait 1joy2
Send {a up}
}
if touche = 1
{
Send {b down}
KeyWait 1joy2
Send {b up}
}
if touche = 2
{
Send {c down}
KeyWait 1joy2
Send {c up}
}
touche = Mod(touche+1, 3) ; 0 <= touche <= 2
return

à tester, je dis tout ca de tete

Publié : mer. janv. 31, 2007 12:55 pm
par Furie
Merci Nigo :king:
Pour le 2-, j'ai quand meme reussi a trouver, en esperant que ça puisse te servir :

-----------------------------------------------------------

1Joy3::WinClose, Bombsight Table 2

1Joy2::
IfWinExist Bombsight Table 2
WinActivate
else
Run C:\Program Files\Bombsight Table 2\Bombsight Table 2.exe

return
-------------------------------------------------------------

avec 1Joy2 pour lancer l'appli bombsight, et 1Joy3 qui le ferme.
et Bombsight Table 2 etant le nom de la fenétre active de l'appli quand elle est lancée





pour le 1-, j'ai fait ceci qui semble fonctionner :

-------------------------------------------------------------------
1Joy2::
{
send {a}
Sleep 1000
}
-------------------------------------------------------------------

la valeur 1000 = 1seconde ici, on a donc tant qu'on appuie sur la touche 1Joy2 une impulsion sur la touche "a" toutes les secondes. la valeur 1000 etant bien sur modifiable

@ plouche

Publié : mer. janv. 31, 2007 1:11 pm
par Nigo
merci pour WinClose, ca peut aider ;)

pour le 1) je crois avoir répondu à la question...

le problème de KeyWait c'est qu'il s'emmèle les pédales avec plusieurs touches enfoncées... je vais me renseigner sur leur forum

Publié : mer. janv. 31, 2007 3:08 pm
par Furie
le -3 et le -1 que tu m'a donné ne fonctionne pas chez moi.
en cherchant sur le forum j'ai trouvé ce truc qui fonctionne :

---------------------------------------------------------

x := 1
return

s::
If x = 1
Send {a}
Else If x = 2
Send {b}
Else If x = 3
Send {c}
Else If x = 4
Send {d}
Else If x = 5
Send {e}
Else If x = 6
Send {f}
Else If x = 7
Send {g}
Else If x = 8
Send {h}
Else If x = 9
{
Send {i}
x := 0
}
x++
------------------------------------------------------------
ici c'est la touche "s" qui fonctionne en cycle : appui 1 = a, appui 2 = b, appui 3 = c etc etc jusqu'a appui 9 = i