#1 Le 10/01/2014, à 23:28
- Antoinecxxxii
Un programme qui manipule simplement la souris à partir du clavier
Bonjour,
je cherche à avoir un programme rapide qui déplace la souris vers la gauche quand j'appuie sur KP4 et vers la droite avec KP6. C'est basique, je sais . Je voudrais l'utiliser pour jouer à des FPS. Mais je suis un gros noob. Disons que ça fait 10 ans que j'ai pas codé, et qu'à l'époque c'était du caml.
Bref, voilà ce que j'ai réussi à pondre en flânant sur le web:
#include "SDL/SDL.h"
#include <X11/extensions/XTest.h>
#include <X11/keysymdef.h>
#include <X11/Xlib.h>
const int SCREEN_WIDTH = 100;
const int SCREEN_HEIGHT = 1;
const int SCREEN_BPP = 16;
SDL_Surface *screen = NULL;
SDL_Event event;
int main( int argc, char* args[] )
{
Display* pDisplay = XOpenDisplay( 0 );
bool quit = false;
if( SDL_Init( SDL_INIT_VIDEO | SDL_INIT_EVENTTHREAD ) == -1 )
{
return false;
}
screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
if( screen == NULL )
{
return false;
}
while( quit == false )
{
while( SDL_PollEvent( &event ) )
{
if( event.type == SDL_QUIT )
{
quit = true;
}
}
//Obtenir les KeyStates
Uint8 *keystates = SDL_GetKeyState( NULL );
if( keystates[ SDLK_KP4 ] )
{
XTestFakeRelativeMotionEvent(pDisplay, -1, 0, 0);
XFlush(pDisplay);
}
if( keystates[ SDLK_KP6 ] )
{
XTestFakeRelativeMotionEvent(pDisplay, 1, 0, 0);
XFlush(pDisplay);
}
// Mise à jours de l'ecran
if( SDL_Flip( screen ) == -1 )
{SDL_Init
return 1;
}
}
//Netoyage
SDL_Quit();
XCloseDisplay(pDisplay);
return 0;
}
(beaucoup de choses doivent être idiotes, mais je suis grand débutant, je le rappelle)
ça fait ce que je voulais, mais pas quand le focus est sur une autre fenêtre. Je voudrais pouvoir déplacer la souris avec le clavier sur n'importe quelle autre fenêtre. Je crois comprendre que ça se joue au niveau de SDL_Init (il paraît que c'est une histoire de thread, mais j'y connais rien).
Des suggestions?
Et au fait: si j'en suis venu à vouloir programmer moi-même, c'est que rien d'autre ne fonctionnait correctement (gestion des raccourcis, xdotool, xbindkeys, etc...). Y a bien antimicro, mais ça ne gère que les boutons d'un joystick en entrée (et je comprends pas grand chose au code source).
Hors ligne
#2 Le 11/01/2014, à 01:47
- Troödon
Re : Un programme qui manipule simplement la souris à partir du clavier
Salut, as tu regardé dans > Paramètres système > Accès universel > Pointage et clic de souris > Touches de la souris.
Hors ligne
#3 Le 11/01/2014, à 01:56
- Antoinecxxxii
Re : Un programme qui manipule simplement la souris à partir du clavier
Oui j'ai regardé. ça fait partie des trucs qui ne conviennent pas (pas du tout paramétrable, trop lent, saccadé, et ça occupe aussi les flêches haut et bas, ce que je ne veux pas).
Hors ligne
#4 Le 11/01/2014, à 02:11
- Troödon
Re : Un programme qui manipule simplement la souris à partir du clavier
Beh désolé, je peux pas t'aider.
Hors ligne
#5 Le 11/01/2014, à 16:34
- Antoinecxxxii
Re : Un programme qui manipule simplement la souris à partir du clavier
Up.
Hors ligne
#6 Le 14/01/2014, à 02:41
- Antoinecxxxii
Re : Un programme qui manipule simplement la souris à partir du clavier
Up...
Hors ligne