begin process at 2010 02 09 14:17:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

DirectX

 > UTILISER LE CLAVIER SOUS DIRECTINPUT 8

UTILISER LE CLAVIER SOUS DIRECTINPUT 8


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :DirectX Niveau :Expert Date de création :17/08/2002 Date de mise à jour :18/08/2002 18:46:00 Vu :4 176

Auteur : ngryman

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ce code permet de capturer exclusivement le clavier et de lire les messages qui en proviennent. L'intérêt d'utiliser DirectInput est que l'on accède directement au périphérique sans passer par la couche de messages windows, la rapidité en est augmentée.

ATTENTION :
Il faut inclure les librairies suivantes pour que le code fonctionne :
  - dinput8.lib
  - dxguid.lib
  - dxerr8.lib
  - uuid.lib

Il faut préciser aussi que le code des touches du clavier sont gérées comme un clavier américain QWERTY, il faut donc remplacer les touches correspondantes. Par exemple DIK_A étant la macro pour intercepter la touche A est en fait la touche Q ...

Source

  • #include <windows.h>
  • #include <Dinput.h>
  • #include <Dxerr8.h>
  • /***** Initialisation de Direct Input *****/
  • // hInstance est l'instance de l'application initialiseé dans la fonction WinMain
  • LPDIRECTINPUT8 pDI;
  • LPDIRECTINPUTDEVICE8 pDIDevice;
  • HRESULT hr;
  • BOOL DI_Init()
  • {
  • // Création de l'interface IDirectInput8
  • hr = DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)& pDI, NULL);
  • if(FAILED(hr))
  • return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
  • // Création du clavier
  • hr = pDI->CreateDevice(GUID_SysKeyboard, &pDIDevice, NULL);
  • if(FAILED(hr))
  • return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
  • // Définition du format de données retournées
  • hr = pDIDevice->SetDataFormat(&c_dfDIKeyboard);
  • if(FAILED(hr))
  • return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
  • // Définition du comportement du clavier par rapport à Windows ( exclusif et en premier plan )
  • hr = pDIDevice->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
  • if(FAILED(hr))
  • return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
  • }
  • /***** Messages du clavier *****/
  • // Cette fonction doit être appellé dans une boucle infinie
  • #define KEYDOWN(name, key) (name[key] & 0x80)
  • void MessagesClavier()
  • {
  • char Buffer[256];
  • hr = pDIDevice->GetDeviceState(sizeof(Buffer), (LPVOID)& Buffer);
  • if(FAILED(hr))
  • {
  • if(hr == DIERR_INPUTLOST)
  • pDIDevice->Acquire();
  • else
  • {
  • DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
  • PostMessage(hWnd, WM_CLOSE, 0, 0);
  • }
  • }
  • if(KEYDOWN(Buffer, DIK_ESCAPE))
  • ;
  • if(KEYDOWN(Buffer, DIK_F2))
  • ;
  • if(KEYDOWN(Buffer, DIK_F3))
  • ;
  • if(KEYDOWN(Buffer, DIK_F4))
  • ;
  • if(KEYDOWN(Buffer, DIK_F5))
  • ;
  • if(KEYDOWN(Buffer, DIK_F6))
  • ;
  • if(KEYDOWN(Buffer, DIK_F7))
  • ;
  • if(KEYDOWN(Buffer, DIK_F8))
  • ;
  • if(KEYDOWN(Buffer, DIK_F9))
  • ;
  • if(KEYDOWN(Buffer, DIK_F10))
  • ;
  • if(KEYDOWN(Buffer, DIK_F11))
  • ;
  • if(KEYDOWN(Buffer, DIK_F12))
  • ;
  • if(KEYDOWN(Buffer, DIK_SCROLL))
  • ;
  • if(KEYDOWN(Buffer, DIK_PAUSE))
  • ;
  • if(KEYDOWN(Buffer, DIK_POWER))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMLOCK))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD1))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD2))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD3))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD4))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD5))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD6))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD7))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD8))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD9))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPAD0))
  • ;
  • if(KEYDOWN(Buffer, DIK_NUMPADENTER))
  • ;
  • if(KEYDOWN(Buffer, DIK_ADD))
  • ;
  • if(KEYDOWN(Buffer, DIK_SUBTRACT))
  • ;
  • if(KEYDOWN(Buffer, DIK_MULTIPLY))
  • ;
  • if(KEYDOWN(Buffer, DIK_DIVIDE))
  • ;
  • if(KEYDOWN(Buffer, DIK_DECIMAL))
  • ;
  • if(KEYDOWN(Buffer, DIK_INSERT))
  • ;
  • if(KEYDOWN(Buffer, DIK_DELETE))
  • ;
  • if(KEYDOWN(Buffer, DIK_HOME))
  • ;
  • if(KEYDOWN(Buffer, DIK_END))
  • ;
  • if(KEYDOWN(Buffer, DIK_PGUP))
  • ;
  • if(KEYDOWN(Buffer, DIK_PGDN))
  • ;
  • if(KEYDOWN(Buffer, DIK_TAB))
  • ;
  • if(KEYDOWN(Buffer, DIK_CAPITAL))
  • ;
  • if(KEYDOWN(Buffer, DIK_LSHIFT))
  • ;
  • if(KEYDOWN(Buffer, DIK_RSHIFT))
  • ;
  • if(KEYDOWN(Buffer, DIK_LCONTROL))
  • ;
  • if(KEYDOWN(Buffer, DIK_RCONTROL))
  • ;
  • if(KEYDOWN(Buffer, DIK_LWIN))
  • ;
  • if(KEYDOWN(Buffer, DIK_RWIN))
  • ;
  • if(KEYDOWN(Buffer, DIK_LALT))
  • ;
  • if(KEYDOWN(Buffer, DIK_RALT))
  • ;
  • if(KEYDOWN(Buffer, DIK_SPACE))
  • ;
  • if(KEYDOWN(Buffer, DIK_APPS))
  • ;
  • if(KEYDOWN(Buffer, DIK_BACK))
  • ;
  • if(KEYDOWN(Buffer, DIK_LEFT))
  • ;
  • if(KEYDOWN(Buffer, DIK_RIGHT))
  • ;
  • if(KEYDOWN(Buffer, DIK_DOWN))
  • ;
  • if(KEYDOWN(Buffer, DIK_UP))
  • ;
  • if(KEYDOWN(Buffer, DIK_A))
  • ;
  • if(KEYDOWN(Buffer, DIK_B))
  • ;
  • if(KEYDOWN(Buffer, DIK_C))
  • ;
  • if(KEYDOWN(Buffer, DIK_D))
  • ;
  • if(KEYDOWN(Buffer, DIK_E))
  • ;
  • if(KEYDOWN(Buffer, DIK_F))
  • ;
  • if(KEYDOWN(Buffer, DIK_G))
  • ;
  • if(KEYDOWN(Buffer, DIK_H))
  • ;
  • if(KEYDOWN(Buffer, DIK_I))
  • ;
  • if(KEYDOWN(Buffer, DIK_J))
  • ;
  • if(KEYDOWN(Buffer, DIK_K))
  • ;
  • if(KEYDOWN(Buffer, DIK_L))
  • ;
  • if(KEYDOWN(Buffer, DIK_M))
  • ;
  • if(KEYDOWN(Buffer, DIK_N))
  • ;
  • if(KEYDOWN(Buffer, DIK_O))
  • ;
  • if(KEYDOWN(Buffer, DIK_P))
  • ;
  • if(KEYDOWN(Buffer, DIK_Q))
  • ;
  • if(KEYDOWN(Buffer, DIK_R))
  • ;
  • if(KEYDOWN(Buffer, DIK_S))
  • ;
  • if(KEYDOWN(Buffer, DIK_T))
  • ;
  • if(KEYDOWN(Buffer, DIK_U))
  • ;
  • if(KEYDOWN(Buffer, DIK_V))
  • ;
  • if(KEYDOWN(Buffer, DIK_W))
  • ;
  • if(KEYDOWN(Buffer, DIK_X))
  • ;
  • if(KEYDOWN(Buffer, DIK_Y))
  • ;
  • if(KEYDOWN(Buffer, DIK_Z))
  • ;
  • if(KEYDOWN(Buffer, DIK_APOSTROPHE))
  • ;
  • if(KEYDOWN(Buffer, DIK_BACKSLASH))
  • ;
  • if(KEYDOWN(Buffer, DIK_CALCULATOR))
  • ;
  • if(KEYDOWN(Buffer, DIK_COMMA))
  • ;
  • if(KEYDOWN(Buffer, DIK_EQUALS))
  • ;
  • if(KEYDOWN(Buffer, DIK_GRAVE))
  • ;
  • if(KEYDOWN(Buffer, DIK_LBRACKET))
  • ;
  • if(KEYDOWN(Buffer, DIK_MAIL))
  • ;
  • if(KEYDOWN(Buffer, DIK_MEDIASELECT))
  • ;
  • if(KEYDOWN(Buffer, DIK_MEDIASTOP))
  • ;
  • if(KEYDOWN(Buffer, DIK_MINUS))
  • ;
  • if(KEYDOWN(Buffer, DIK_MUTE))
  • ;
  • if(KEYDOWN(Buffer, DIK_MYCOMPUTER))
  • ;
  • if(KEYDOWN(Buffer, DIK_NEXTTRACK))
  • ;
  • if(KEYDOWN(Buffer, DIK_PERIOD))
  • ;
  • if(KEYDOWN(Buffer, DIK_PLAYPAUSE))
  • ;
  • if(KEYDOWN(Buffer, DIK_PREVTRACK))
  • ;
  • if(KEYDOWN(Buffer, DIK_RBRACKET))
  • ;
  • if(KEYDOWN(Buffer, DIK_SEMICOLON))
  • ;
  • if(KEYDOWN(Buffer, DIK_SLASH))
  • ;
  • if(KEYDOWN(Buffer, DIK_SLEEP))
  • ;
  • if(KEYDOWN(Buffer, DIK_SYSRQ))
  • ;
  • if(KEYDOWN(Buffer, DIK_VOLUMEDOWN))
  • ;
  • if(KEYDOWN(Buffer, DIK_VOLUMEUP))
  • ;
  • if(KEYDOWN(Buffer, DIK_WAKE))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBBACK))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBFAVORITES))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBFORWARD))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBHOME))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBREFRESH))
  • ;
  • if(KEYDOWN(Buffer, DIK_WEBSEARCH))
  • ;
  • if(KEYDOWN(Buffer, DIK_STOP))
  • ;
  • }
#include <windows.h>
#include <Dinput.h>
#include <Dxerr8.h>

/***** Initialisation de Direct Input *****/

// hInstance est l'instance de l'application initialiseé dans la fonction WinMain

LPDIRECTINPUT8 pDI;
LPDIRECTINPUTDEVICE8 pDIDevice;

HRESULT hr;

BOOL DI_Init()
{
	// Création de l'interface IDirectInput8
	hr = DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)& pDI, NULL);
	if(FAILED(hr))
		return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);

	// Création du clavier
	hr = pDI->CreateDevice(GUID_SysKeyboard, &pDIDevice, NULL); 
	if(FAILED(hr))
		return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);

	// Définition du format de données retournées
	hr = pDIDevice->SetDataFormat(&c_dfDIKeyboard);
	if(FAILED(hr))
		return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);

	// Définition du comportement du clavier par rapport à Windows ( exclusif et en premier plan )
	hr = pDIDevice->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
	if(FAILED(hr))
		return DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
}

/***** Messages du clavier *****/

// Cette fonction doit être appellé dans une boucle infinie

#define KEYDOWN(name, key) (name[key] & 0x80) 

void MessagesClavier()
{
	char Buffer[256];

	hr = pDIDevice->GetDeviceState(sizeof(Buffer), (LPVOID)& Buffer);
	if(FAILED(hr))
	{
		if(hr == DIERR_INPUTLOST)
			pDIDevice->Acquire();
		else
		{
			DXTrace(__FILE__, __LINE__, hr, (char*) DXGetErrorDescription8(hr), TRUE);
			PostMessage(hWnd, WM_CLOSE, 0, 0);
		}
	}

	if(KEYDOWN(Buffer, DIK_ESCAPE))
		;
	
	if(KEYDOWN(Buffer, DIK_F2))
		;

	if(KEYDOWN(Buffer, DIK_F3))
		;

	if(KEYDOWN(Buffer, DIK_F4))
		;
	
	if(KEYDOWN(Buffer, DIK_F5))
		;
	
	if(KEYDOWN(Buffer, DIK_F6))
		;
	
	if(KEYDOWN(Buffer, DIK_F7))
		;
	
	if(KEYDOWN(Buffer, DIK_F8))
		;

	if(KEYDOWN(Buffer, DIK_F9))
		;

	if(KEYDOWN(Buffer, DIK_F10))
		;

	if(KEYDOWN(Buffer, DIK_F11))
		;

	if(KEYDOWN(Buffer, DIK_F12))
		;

	if(KEYDOWN(Buffer, DIK_SCROLL))
		;
	
	if(KEYDOWN(Buffer, DIK_PAUSE))
		;
	
	if(KEYDOWN(Buffer, DIK_POWER))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMLOCK))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD1))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD2))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD3))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD4))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD5))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD6))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD7))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD8))
		;
	
	if(KEYDOWN(Buffer, DIK_NUMPAD9))
		;

	if(KEYDOWN(Buffer, DIK_NUMPAD0))
		;

	if(KEYDOWN(Buffer, DIK_NUMPADENTER))
		;

	if(KEYDOWN(Buffer, DIK_ADD))
		;
	
	if(KEYDOWN(Buffer, DIK_SUBTRACT))
		;

	if(KEYDOWN(Buffer, DIK_MULTIPLY))
		;
	
	if(KEYDOWN(Buffer, DIK_DIVIDE))
		;
	
	if(KEYDOWN(Buffer, DIK_DECIMAL))
		;
	
	if(KEYDOWN(Buffer, DIK_INSERT))
		;
	
	if(KEYDOWN(Buffer, DIK_DELETE))
		;
	
	if(KEYDOWN(Buffer, DIK_HOME))
		;
	
	if(KEYDOWN(Buffer, DIK_END))
		;

	if(KEYDOWN(Buffer, DIK_PGUP))
		;
	
	if(KEYDOWN(Buffer, DIK_PGDN))
		;
	
	if(KEYDOWN(Buffer, DIK_TAB))
		;
	
	if(KEYDOWN(Buffer, DIK_CAPITAL))
		;

	if(KEYDOWN(Buffer, DIK_LSHIFT))
		;
	
	if(KEYDOWN(Buffer, DIK_RSHIFT))
		;
	
	if(KEYDOWN(Buffer, DIK_LCONTROL))
		;
	
	if(KEYDOWN(Buffer, DIK_RCONTROL))
		;
	
	if(KEYDOWN(Buffer, DIK_LWIN))
		;
	
	if(KEYDOWN(Buffer, DIK_RWIN))
		;
	
	if(KEYDOWN(Buffer, DIK_LALT))
		;
	
	if(KEYDOWN(Buffer, DIK_RALT))
		;
	
	if(KEYDOWN(Buffer, DIK_SPACE))
		;
	
	if(KEYDOWN(Buffer, DIK_APPS))
		;
	
	if(KEYDOWN(Buffer, DIK_BACK))
		;
	
	if(KEYDOWN(Buffer, DIK_LEFT))
		;
	
	if(KEYDOWN(Buffer, DIK_RIGHT))
		;
	
	if(KEYDOWN(Buffer, DIK_DOWN))
		;
	
	if(KEYDOWN(Buffer, DIK_UP))
		;

	if(KEYDOWN(Buffer, DIK_A))
		;

	if(KEYDOWN(Buffer, DIK_B))
		;

	if(KEYDOWN(Buffer, DIK_C))
		;

	if(KEYDOWN(Buffer, DIK_D))
		;

	if(KEYDOWN(Buffer, DIK_E))
		;

	if(KEYDOWN(Buffer, DIK_F))
		;

	if(KEYDOWN(Buffer, DIK_G))
		;

	if(KEYDOWN(Buffer, DIK_H))
		;
	
	if(KEYDOWN(Buffer, DIK_I))
		;
	
	if(KEYDOWN(Buffer, DIK_J))
		;
	
	if(KEYDOWN(Buffer, DIK_K))
		;
	
	if(KEYDOWN(Buffer, DIK_L))
		;
	
	if(KEYDOWN(Buffer, DIK_M))
		;

	if(KEYDOWN(Buffer, DIK_N))
		;

	if(KEYDOWN(Buffer, DIK_O))
		;

	if(KEYDOWN(Buffer, DIK_P))
		;
	
	if(KEYDOWN(Buffer, DIK_Q))
		;
	
	if(KEYDOWN(Buffer, DIK_R))
		;
	
	if(KEYDOWN(Buffer, DIK_S))
		;
	
	if(KEYDOWN(Buffer, DIK_T))
		;
	
	if(KEYDOWN(Buffer, DIK_U))
		;

	if(KEYDOWN(Buffer, DIK_V))
		;

	if(KEYDOWN(Buffer, DIK_W))
		;
	
	if(KEYDOWN(Buffer, DIK_X))
		;

	if(KEYDOWN(Buffer, DIK_Y))
		;
	
	if(KEYDOWN(Buffer, DIK_Z))
		;

	if(KEYDOWN(Buffer, DIK_APOSTROPHE))
		;
	
	if(KEYDOWN(Buffer, DIK_BACKSLASH))
		;
	
	if(KEYDOWN(Buffer, DIK_CALCULATOR))
		;
	
	if(KEYDOWN(Buffer, DIK_COMMA))
		;
	
	if(KEYDOWN(Buffer, DIK_EQUALS))
		;
	
	if(KEYDOWN(Buffer, DIK_GRAVE))
		;
	
	if(KEYDOWN(Buffer, DIK_LBRACKET))
		;
	
	if(KEYDOWN(Buffer, DIK_MAIL))
		;
	
	if(KEYDOWN(Buffer, DIK_MEDIASELECT))
		;
	
	if(KEYDOWN(Buffer, DIK_MEDIASTOP))
		;
	
	if(KEYDOWN(Buffer, DIK_MINUS))
		;
	
	if(KEYDOWN(Buffer, DIK_MUTE))
		;
		
	if(KEYDOWN(Buffer, DIK_MYCOMPUTER))
		;
	
	if(KEYDOWN(Buffer, DIK_NEXTTRACK))
		;
	
	if(KEYDOWN(Buffer, DIK_PERIOD))
		;
	
	if(KEYDOWN(Buffer, DIK_PLAYPAUSE))
		;
	
	if(KEYDOWN(Buffer, DIK_PREVTRACK))
		;
	
	if(KEYDOWN(Buffer, DIK_RBRACKET))
		;
	
	if(KEYDOWN(Buffer, DIK_SEMICOLON))
		;

	if(KEYDOWN(Buffer, DIK_SLASH))
		;
	
	if(KEYDOWN(Buffer, DIK_SLEEP))
		;

	if(KEYDOWN(Buffer, DIK_SYSRQ))
		;
	
	if(KEYDOWN(Buffer, DIK_VOLUMEDOWN))
		;
	
	if(KEYDOWN(Buffer, DIK_VOLUMEUP))
		;
	
	if(KEYDOWN(Buffer, DIK_WAKE))
		;
	
	if(KEYDOWN(Buffer, DIK_WEBBACK))
		;
	
	if(KEYDOWN(Buffer, DIK_WEBFAVORITES))
		;

	if(KEYDOWN(Buffer, DIK_WEBFORWARD))
		;
	
	if(KEYDOWN(Buffer, DIK_WEBHOME))
		;
	
	if(KEYDOWN(Buffer, DIK_WEBREFRESH))
		;
	
	if(KEYDOWN(Buffer, DIK_WEBSEARCH))
		;
	
	if(KEYDOWN(Buffer, DIK_STOP))
		;
} 

 Conclusion

Ce code fait parti du projet que j'ai en ce moment qui est un moteur 3D utilisant DirectX 8.1. Pour en savoir plus sur le moteur et son développement http://membres.lycos.fr/detonatorxp/    


 Sources du même auteur

CLASSE TIMER SOUS WINDOWS ( CHRONOMÈTRE )

 Sources de la même categorie

Source avec Zip Source avec une capture MP3 DX9 JOUER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture EQUINOX VISUAL SON METER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture FLEUR EN DELIRE! par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture DIREXCT X 9 D3D par f_l_a_s_h_b_a_c_k
Source avec Zip BLOP DIRECT X par f_l_a_s_h_b_a_c_k

Commentaires et avis

Commentaire de pepet le 19/08/2002 12:51:45

Salut,
je ne savais pas comment utiliser DIRECT INPUT, ce tut ma bien aidé.
Je travaille aussi sur la conception d'un moteur 3D mais utilisant OpenGL.
Je suis aller sut ton site et tu y dit ke direct X ( tu aurai peut etre dut dire direct 3D ) a surpassé OpenGL, personnellemnt je trouve ke non, de plus direct X n'est guere plus difficile que OpenGL!

salut

NB :  des screen shot de ton moteur 3D serai bien!

Commentaire de karamimed le 16/02/2004 19:36:02

pouvez-vous m'envoyer la bibliotheque &lt;windows.h&gt; par email (karamimed@yahoo.fr) merci d'avance

Commentaire de soldier8514 le 27/04/2005 21:44:45

windows.h ?! Mais Keske c ty donc ?!!! je vous le demande ....

nan mais tu nous fais une blague là Karamimed _ non ?

Commentaire de tchernobrovkine le 22/09/2009 05:01:28

bonjour je cherche la touche mode du clavier pour un jeu pc je n,arrive pas a trouver pouvez vous maider je vous remerçi beau
coup je vous donne mon e-mail
micheltchernobrovkine@yahoo.fr   encore merçi

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales