rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[C++] clavier-simulation caractères spéciaux

Thoams, le dimanche 13 mai 2007 à 12:53:47
Bonjour,

Je suis en train de réaliser un clavier virtuel. Il marche parfaitement avec les touches "classiques" AZERTY grâce à la fonction keybd_event() , mais j'aimerais maintenant créer des touches "caractères spéciaux" comme '¿' (ALT+168) ou 'ß' (ALT+225).

Donc je voulais simuler une combinaison de touches = {ALT + 2 + 2 + 5 + /ALT}. Malheureusement je n'y arrive pas ! Ce qui est bizar c'est que j'arrive à simuler {ALT + TAB + /TAB + /ALT} grâce à la fonction SendInput() mais pas ALT + combinaison de chiffres...

Est-ce que quelqu'un a une idée ?
Merci beaucoup

Je joins les codes que j'ai essayé... si quelqu'un voit ce qui cloche


#include <windows.h>
#include <WinAble.h>

int main(int argc, char * argv[]) {

// Mise d'Open Office au premier plan
HWND hMPlayer = FindWindow("SALFRAME",NULL);
SetForegroundWindow(hMPlayer);
Sleep(100);

// simulation 'ß' Première version
keybd_event( VK_MENU, 0, KEYEVENTF_EXTENDEDKEY, 0); // Appuis ALT
keybd_event( 98, 0, 0, 0); // Appuis '2'
keybd_event( 98, 0, KEYEVENTF_KEYUP, 0); // Relachement '2'
keybd_event( 98, 0, 0, 0); // Appuis '2'
keybd_event( 98, 0, KEYEVENTF_KEYUP, 0); // Relachement '2'
keybd_event( 101, 0, 0, 0); // Appuis '5'
keybd_event( 101, 0, KEYEVENTF_KEYUP, 0); // Relachement '5'
keybd_event( VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); // Relachement ALT

// simulation 'ß' Deuxième version
INPUT input[8];
input[0].type = input[7].type = INPUT_KEYBOARD;
input[0].ki.wVk = input[7].ki.wVk = VK_MENU; // 0 - Appui ALT
input[7].ki.dwFlags = KEYEVENTF_KEYUP; // 7 - Relachement ALT
input[1].type = input[2].type = INPUT_KEYBOARD;
input[1].ki.wVk = input[2].ki.wVk = 98; // 1 - Appui '2'
input[2].ki.dwFlags = KEYEVENTF_KEYUP; // 2 - Relachement '2'
input[3].type = input[4].type = INPUT_KEYBOARD;
input[3].ki.wVk = input[4].ki.wVk = 98; // 3 - Appui '2'
input[4].ki.dwFlags = KEYEVENTF_KEYUP; // 4 - Relachement '2'
input[5].type = input[6].type = INPUT_KEYBOARD;
input[5].ki.wVk = input[6].ki.wVk = 101; // 5 - Appui '5'
input[6].ki.dwFlags = KEYEVENTF_KEYUP; // 6 - Relachement '5'
::SendInput(8, input, sizeof(INPUT));

return 0;
}
Configuration: Windows XP
Firefox 2.0.0.3
Répondre à Thoams  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alexandre Perron, le lundi 20 août 2007 à 16:08:10
Utilise une fonction du genre :


static void SendString(LPCTSTR str) {
INPUT inp[2];
memset(inp,0,sizeof(INPUT));
inp[0].type = INPUT_KEYBOARD;
inp[0].ki.dwFlags = KEYEVENTF_UNICODE; // to avoid shift, and so on
inp[1] = inp[0];
inp[1].ki.dwFlags |= KEYEVENTF_KEYUP;

for (LPCTSTR p=str; *p; p++) {
inp[0].ki.wScan = inp[1].ki.wScan = *p;
SendInput(2, inp, sizeof(INPUT));
}
}

Tu pourras envoyer même des caractères qui ne se trouvent pas sur ton clavier.

http://msdn.microsoft.com/msdnmag/issues/05/01/CQA/
Répondre à Alexandre Perron

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Zarathoustra, le dimanche 30 septembre 2007 à 23:13:30
hé thoams pourasi tu me passer ton adresse email, msn ou autre pour parler de ton clavier-simulation?

en tout cas bonne chance dans ton projet!
Répondre à Zarathoustra

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rubynette, le mardi 11 décembre 2007 à 19:55:37
bonjour,
en fait j'aimerai mettre des caracteres spéciaux sur mon blogs et je suis allé dans les générateurs mais ils me disent de copier coller et ça marche pas!!
si vous savez comment faire merci de m'aider!!
Répondre à rubynette

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Ato, le lundi 25 février 2008 à 01:22:32
bonjour,
j'ai le même problème, je n'arrive pas à écrire en automatique certaines lettre . par ex : alt + 0203 = Ë. Si je le fais a la main, ca marche, mais en automatique avec keybd_event, ca marche pas ...
si quelqu'un a une solution, je suis tres prenneur
Merci
Ato
Répondre à Ato
Logiciels pertinents trouvés dans les téléchargements
Télécharger Pilote pour clavier enrichi  1.05Pilote pour clavier enrichi - Il manque quelques caractères bien utiles sur notre Clavier ordinaire (AZERTY). Souvent, on perd de précieuses minutes en...Catégorie: Sécurité
Licence: Freeware/gratuit
Télécharger Ant Renamer 2.10.0Ant Renamer - ANT Renamer permet de renommer un grand nombre de fichiers et dossiers en quelques clics. Il ne fait que modifier les noms...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger Pattern-Making Calculator 1.0Pattern-Making Calculator - Pour les nombres, les anglophones sont habitués à utiliser des valeurs dites "impériales" ou en fraction et non des valeurs...Catégorie: Calculatrice
Licence: Freeware/gratuit
Télécharger Cashbox 0.50Cashbox - La gestion des finances n'est pas toujours chose facile pour tout le monde, sauf si on a fait des études spéciales. Voici...Catégorie: Comptabilité/Paie
Licence: Open Source
Plus de logiciels gratuits sur « [C++] clavier simulation caractères spéciaux »