IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Codage des caractères Ascii étendus avec keybd_event()


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Points : 104
    Points
    104
    Par défaut Codage des caractères Ascii étendus avec keybd_event()
    Bonjour,

    Pour les besoin d'une appli je dois envoyer des message clavier en utilisant la fonction keybd_event().

    Par exemple pour le caractère 'A'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    keybd_event(0x41,0,0,0);
    0x41 étant la représentation hexadécimale du caractère A dans la table Ascii.

    Maintenant je voudrais coder les caractères étendus de la table ascii (deuxième tableau ), mais ça ne semble pas possible avec la fonction keybd_event().

    Savez vous pourquoi ? Y a t'il un autre moyen d'envoyer un message clavier pour ce type de caractère ?

    Merci pour votre aide.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    VOID keybd_event(

    BYTE bVk, // virtual-key code
    BYTE bScan, // hardware scan code
    DWORD dwFlags, // flags specifying various function options
    DWORD dwExtraInfo // additional data associated with keystroke
    );


    Parameters

    bVk

    Specifies a virtual-key code. The code must be a value in the range 1 to 254.

    bScan

    Specifies a hardware scan code for the key.

    dwFlags

    A set of flag bits that specify various aspects of function operation. An application can use any combination of the following predefined constant values to set the flags:

    KEYEVENTF_EXTENDEDKEY
    If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224).
    KEYEVENTF_KEYUP
    If specified, the key is being released. If not specified, the key is being depressed.

    dwExtraInfo
    Specifies an additional 32-bit value associated with the key stroke.
    S'agit-il de rajouter simplement KEYEVENTF_EXTENDEDKEY pour dwFlags ?

    A plus !

  3. #3
    Membre régulier Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Points : 104
    Points
    104
    Par défaut
    Salut henderson !
    Merci pour ta réponse mais je crois que ça ne marche pas. Je cherche à coder le caractère ° (degré) qui correspond au code héxa 0xB0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keybd_event(0xF8,0,KEYEVENTF_EXTENDEDKEY,0);
    Malheuresement ça ne passe pas... Quelqu'un à t'il une autre idée.

    Merci et a+

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Essayes ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SHORT vk = VkKeyScan('°');
     
    bool bShiftDown = GetAsyncKeyState(VK_SHIFT) & 0x8000;
     
    if ((HIBYTE(vk) != 0xff) && (LOBYTE(vk) != 0xff))
      {
      if (vk & 0x0100 && !bShiftDown)
        keybd_event(VK_LSHIFT, 0, 0, 0);
     
      keybd_event(vk & 0xff, 0, 0 ,0);
      keybd_event(vk & 0xff, 0, KEYEVENTF_KEYUP,0);
     
      if (vk & 0x0100 && !bShiftDown)
        keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);
      }

  5. #5
    Membre régulier Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Points : 104
    Points
    104
    Par défaut
    Super Totoche ça marche comme ça. Merci beaucoup.

    Où as tu trouvé ce code ??

    Merci encore et a+

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Ca fait longtemps que j'ai ce bout de code chez moi, mais j'ai dû le choper ici à l'époque (merci google !):
    http://bcbdev.borlandforum.com/faqs/faq77.htm

    Sinon j'avais aussi regardé du côté de http://www.microsoft.com/msj/0499/bu...layer0499.aspx, mais je n'ai jamais eu assez d'aspirine pour aller au bout du code !!

    Bon courage !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/05/2008, 00h48
  2. Cohérence des caractères ASCII
    Par the-player777 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/10/2007, 08h45
  3. codage des caractères accentués
    Par grinder59 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 27/08/2007, 22h41
  4. Fil RSS et codage des caractères
    Par komoku dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2007, 12h52
  5. Problème codage des caractères
    Par webrider dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/06/2006, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo