Simuler les touches clavier

Soyez le premier à donner votre avis sur cette source.

Vue 27 353 fois - Téléchargée 1 369 fois

Description

Pour question récurrente sur forum.

Ouvrir une fenêtre notepad pour tester, pour cela que j'ai mis un Sleep(3000) on a le temps de mettre la notepad devant histoire qu'elle reçoive le texte.
2 versions dans zip, ansi et unicode, pour vérifier que va bon.
Renommer les exec en exe pour essayer sans avoir à compiler.

Source / Exemple :


void __stdcall kbdSimule(TCHAR *psz)
{
  INPUT npt;
  npt.ki.dwExtraInfo = npt.ki.time = 0;
  npt.type = INPUT_KEYBOARD;
  npt.ki.wVk = 0;
  while(*psz) {
#ifdef UNICODE
    npt.ki.wScan = (WORD) *psz;
#else
    npt.ki.wScan = (WORD) (BYTE) *psz;
#endif
    npt.ki.dwFlags = KEYEVENTF_UNICODE;
    SendInput(1, &npt, sizeof(INPUT));
    npt.ki.dwFlags =  KEYEVENTF_UNICODE| KEYEVENTF_KEYUP;
    SendInput(1, &npt, sizeof(INPUT));
    psz++;
  }
}

int WINAPI WinMain(HINSTANCE h, HINSTANCE x, LPSTR ystr, int z)
{
  Sleep(3000);
  kbdSimule("AEIOU àéïôù aeiou");
  return 0;
}

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
25
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
3 mai 2006

a ok moi je programme sous dev-c++ c surement pour ca ! et tkt moi oci chui un news
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Toujours mettre dans cet ordre:
#define _WIN32_WINNT 0x0501
#define _WIN32_IE 0x0501
#include <windows.h>
Messages postés
4
Date d'inscription
jeudi 1 décembre 2005
Statut
Membre
Dernière intervention
5 décembre 2005

la fonction keybd_event() existe par contre, mais j'obtiens ces erreurs :

error LNK2001: unresolved external symbol "extern "C" int __stdcall GetKeyboardState(unsigned char *)" (?GetKeyboardState@@$$J14YGHPAE@Z)

error LNK2001: unresolved external symbol "extern "C" void __stdcall keybd_event(unsigned char,unsigned char,unsigned long,unsigned long)" (?keybd_event@@$$J216YGXEEKK@Z)
Messages postés
4
Date d'inscription
jeudi 1 décembre 2005
Statut
Membre
Dernière intervention
5 décembre 2005

ok pardon, jai installé le SDK, du coup j'include le windows.h, mais à la compile il me dit toujours que la fonction SendInput n'existe pas.. help :(
Messages postés
4
Date d'inscription
jeudi 1 décembre 2005
Statut
Membre
Dernière intervention
5 décembre 2005

chui un newbie com on les aime pas, mais je fais comment sachant que windows.h n'existe pas sous visual C++ 2005 ? :/
Afficher les 24 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.