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

WinDev Discussion :

imprimer qr code reçu par API


Sujet :

WinDev

  1. #1
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut imprimer qr code reçu par API
    Bonjour tout le monde
    je consomme un webservice qui envoie les données d'un ticket client (caisse enregistreuse ) et donne en réponse l’identifiant fiscal unique du ticket ainsi qu’un QR-Code.
    selon le cahier de charges "L’identifiant et le QR-Code doivent être inclus dans le ticket à imprimer " . dans la documentation API j'ai :
    "Response Schema: application/json
    ticketIdentifier string L’identifiant unique associé au ticket

    qrcodeImage Array of strings <byte> [ items <byte > ] Le QR-Code à imprimer sur le ticket.

    et là je ne comprend pas comment manipuler le retour "Array of strings <byte> [ items <byte > ] " en windev (typage, encodage...) pour imprimer le qr code
    voici le code
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    bufJSON		is Buffer
    Rep est une restRéponse =RESTEnvoie(ReqTicket)
    // 
    SI ErreurDétectée ALORS
    	Erreur("envoi error " +RC + ErreurInfo(errMessage)+ RC + ErreurInfo(errCode))
    SINON
     
    	SI Rep.CodeEtat=200 ALORS
     
    		v				est un Variant 
    		v			= JSONVersVariant(Rep.Contenu)
     
    		Saisie1		=		v.object.ticketIdentifier
     
    		bufJSON	=	v.object.qrcodeImage
     
     
    qr0=Décode(bufJSON2,encodeBASE64)
     
    //
    		iAperçu(i100, "", Vrai)
     
    		iImprimeEtat(TicketClient,qr0) //état ticket client 
     
    	SINON SI Rep.CodeEtat=401 
     
    		Info ("Erreur 401: l’appel est reçu depuis un  agent non autorisé ")
     
    	SINON 
    		Info ("Erreur",Rep.Contenu,Rep.CodeEtat)
     
    	FIN
    FIN
    résultat de ce code : le qrcode est vide sur l'état
    merci pour votre aide

  2. #2
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 472
    Billets dans le blog
    1
    Par défaut
    Salut
    Je pense que ça aiderait d'avoir un exemple de json reçu

  3. #3
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    merci à vous
    voici la réponse json
    reponse.txt

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 282
    Par défaut
    Hello,
    dans le fichier json il y a l'image QrCode encodée en base 64. Comme je n'ai pas de windev sous la main, j'ai utilisé ce code en python pour extraire l'image :
    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
    16
    17
    import json
    import base64
    from io import BytesIO
    from PIL import Image
    # Charger ton fichier JSON
    with open("d:/temp/reponse.txt", "r") as f:
        data = json.load(f)
    # Récupérer la chaîne base64
    img_base64 = data["object"]["qrcodeImage"]
    # Décoder la chaîne base64 en bytes
    img_bytes = base64.b64decode(img_base64)
    # Ouvrir l'image avec PIL
    image = Image.open(BytesIO(img_bytes))
    # Afficher l'image
    image.show()
    # (Optionnel) Sauvegarder l'image en PNG
    image.save("d:/temp/qrcode.png")
    je suis sûr que dans le forum quelqu'un saura faire la même chose en windev.
    Cela pourrait donner cela (à tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Charger le fichier JSON
    sJSON est une chaîne = fChargeTexte("d:\temp\reponse.txt")
    // Extraire le champ qrcodeImage
    // Utilisation des fonctions JSON natives
    objJSON est un Variant
    JSONVersVariant(sJSON, objJSON)
    sBase64 est une chaîne = objJSON.object.qrcodeImage
    // Décoder le Base64 en binaire
    bufImage est un Buffer = Base64VersBuffer(sBase64)
    // Sauvegarder le buffer dans un fichier image
    fSauveBuffer("qrcode.png", bufImage)
    // Charger et afficher l’image dans un champ Image de la fenêtre
    IMG_QR est une Image
    IMG_QR = "qrcode.png"
    Voici ce que l'on obtient :
    Nom : QrCodeNacef.png
Affichages : 144
Taille : 4,3 Ko

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  5. #5
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    Bonjour,

    +1 Jurassic Pork
    Il est possible d'utiliser fEstUneImage() directement sur la variable buffer pour savoir si l'image décodée est correcte. en reprenant le code de JP :
    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
    16
    fEstUneImage()
    sJSON est une chaîne = fChargeTexte("d:\temp\reponse.txt")
    // Extraire le champ qrcodeImage
    // Utilisation des fonctions JSON natives
    objJSON est un Variant
    JSONVersVariant(sJSON, objJSON)
    sBase64 est une chaîne = objJSON.object.qrcodeImage
    // Décoder le Base64 en binaire
    bufImage est un Buffer = Base64VersBuffer(sBase64)
     
    IMG_QR est une Image
    // teste si image valide
    SI fEstUneImage(bufImage) ALORS
      // Charger et afficher l’image dans un champ Image de la fenêtre
      IMG_QR = bufImage
    FIN
    Ca permet de s'affranchir de l'écriture d'un fichier.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    Merci pour vos réponses
    j'ai utilisé ce code dans un état de test et ça m'a affiché bien le Qr code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    b=fChargeBuffer("D:\reponse.txt")
     
    IMAGE =Décode(b,encodeBASE64)
    Remarque : j'ai changé le champ de type QRcode de l'état en champ de type image
    MAIS lorsque j'essaye d'utiliser mon "vrai " état je n'obtiens pas le qrcode , en fait je ne veux pas enregistrer le json dans un fichier puis le charger dans le buffer ; voici mon code
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    bufJSON		is Buffer
    Rep est une restRéponse =RESTEnvoie(ReqTicket)
    // 
    SI ErreurDétectée ALORS
    	Erreur("envoi error " +RC + ErreurInfo(errMessage)+ RC + ErreurInfo(errCode))
    SINON
     
    	SI Rep.CodeEtat=200 ALORS
     
    		v est un Variant = JSONVersVariant(Rep.Contenu)
     
     	bufJSON	=	v.object.qrcodeImage
     
    //
    		iAperçu(i100, "", Vrai)
     
    		iImprimeEtat(TicketClient,bufJSON) //état ticket client 
     
    	SINON SI Rep.CodeEtat=401 
     
    		Info ("Erreur 401: l’appel est reçu depuis un  agent non autorisé ")
     
    	SINON 
    		Info ("Erreur",Rep.Contenu,Rep.CodeEtat)
     
    	FIN
    FIN
    et dans l'état j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        IMAGEqr=Décode(buf,encodeBASE64) // buf est le buffer reçu en parametre
    où est ce que je me trompe
    je vous remercie

  7. #7
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    2-3 choses :
    - Tu dis que cela fonctionne sur un état de test mais pas sur ton état ticket. Quelle est la différence ? L'imprimante utilisée ?
    - Plutôt que de faire des si Rep.CodeEtat ... alors ... sinon si Rep.CodeEtat ...alors ... sinon, Utilise SELON Rep.CodeEtat. C'est plus lisible.
    - Tu ne montres pas l'entête de la procédure Etat, surtout le passage de paramètre(s).
    - Tu ne nous dis pas si la valeur arrive bien jusqu'à IMAGEqr.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    - la différence entre l' état de test et l' état ticket est le code utilisé (mentionné dans le message précedent ) et moi je ne veux pas enregistrer le json dans un fichier puis le charger dans le buffer
    - je n'imprime pas juste je fais aperçu
    -l'entête de la procédure Etat:
    PROCÉDURE TicketClient(buf)
    - comment passer une chaine en parametre plutot qu'un buffer.? vous voulez dire je reçois la réponse json dans une chaine?

  9. #9
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    Je comprends bien que tu ne veux pas passer par un fichier intermédiaire.

    Pourquoi n'utilises tu pas de type dans l'entête de l'état ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCÉDURE TicketClient(buf est un buffer)
    Est-ce que buf vaut bien quelque chose ?

    Je passerais éventuellement par une variable intermédiaire (de type image) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    imgQR est une image
    imgQR = Décode(buf,encodeBASE64)
    IMAGEqr=imgQR
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    BONJOUR
    1/
    Pourquoi n'utilises tu pas de type dans l'entête de l'état ?
    j'ai utilisé le type buffer et ça donne la meme chose
    2/
    Est-ce que buf vaut bien quelque chose ?
    ça vaut "i" qui est le premier caractere du "qrcodeImage" du json !

  11. #11
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    Bonjour,

    Dans le débugger, est-ce que "imgQ" a bien la bonne valeur ? Il est possible que le transcodage entre type

    Tu peux essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    imgQR est une image
    // Récupération du JSON et extraction du membre contenant le base64 de l'image
    [...]
    imgQR = Décode(buf,encodeBASE64)
     
    iImprimeEtat(TicketClient, imgQR)
    Et dans le code de l'état
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROCÉDURE TicketClient(pImgQrCode est une image)
     
    IMAGEqr = pImgQrCode
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  12. #12
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    merci beaucoup pour votre intérêt
    est-ce que "imgQ" a bien la bonne valeur ?
    NON

    j'ai ajouté un champ image dans la fenêtre contenant l'appel API , je décode le buffer lu dans le champ Image
    avant d'envoyer à l'état mais c'est toujours vide
    j'ai aussi tester avec un champ QRcode (meme résultat )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    bufJSON2	=	v.object.qrcodeImage
    Image1=Décode(bufJSON2,encodeBASE64)

  13. #13
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    Petite question : en quelle version de Windev es-tu ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  14. #14
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    J'ai repris (et modifié) le code de JP, pour le mettre dans un projet (Windev 24) :
    Une fenêtre avec un bouton et une image.
    Un état avec un QrCode et une image

    Code du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sJSON, sBase64 sont des chaînes
    var_JSON est un Variant
    bufImage est un Buffer
     
    sJSON = fChargeTexte("reponse.txt")
    var_JSON = JSONVersVariant(sJSON)
    sBase64 = var_JSON.object.qrcodeImage
     
    bufImage = Décode(sBase64, encodeBASE64)
     
    Image1 = bufImage 
     
    iAperçu(iapZoom100)
    iImprimeEtat(ETAT_Ticket, bufImage)
    Code de l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROCÉDURE ETAT_Ticket(pBuf est un Buffer)
     
    CODE_BARRES = pBuf
    IMAGE = pBuf
    Qd je clique sur le bouton, j'ai la fenêtre :
    Nom : QR_Fen.png
Affichages : 98
Taille : 12,5 Ko

    Et l'état :
    Nom : QR_Etat.png
Affichages : 95
Taille : 16,4 Ko
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  15. #15
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    bonjour tout le monde
    je vous remercie tous et spécialement frenchsting et jurassic pork
    probleme résolu grâce à vous
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Rep est une restRéponse =RESTEnvoie(postReq)
    s est une chaîne 
    // 
    SI ErreurDétectée ALORS
    	Erreur("envoi error " +RC + ErreurInfo(errMessage)+ RC + ErreurInfo(errCode))
    SINON
     
    	SELON  Rep.CodeEtat
            CAS 200  
     
    		v	est un Variant 
    		v		= JSONVersVariant(Rep.Contenu)
     		Saisie1	=	v.object.ticketIdentifier
    	 	s	=	v.object.qrcodeImage
     
          bufJSON =	Décode(s, encodeBASE64)
          Image1=bufJSON //SUR LA FENETRE  
     
    //
    		iAperçu(i100, "", Vrai)	
    		iImprimeEtat(TicketClient1,Saisie1,bufJSON)
     
    	cas 401 
     
    		Info ("Erreur 401: l’appel est reçu depuis UN  agent  non autorisé")
     
    	AUTRE CAS 
    		Info ("Erreur",Rep.Contenu,Rep.CodeEtat)
     
           FIN
     FIN

  16. #16
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 633
    Par défaut
    Bonjour,

    Une remarque concernant ton code : utilise des noms de variables parlant et préfixées. Des variables avec le nom S ou V, ne font pas du tout penser à quoi elles servent. Ton code est simple et c'est facile à comprendre. Mais le jour où tu auras, comme ça m'est arrivé, à lire un bloc de code de 2 000 lignes (sans commentaire bien sûr) avec des noms de variables pas causants du tout, tu maudiras le développeur qui a pondu ça.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  17. #17
    Membre confirmé
    Femme Profil pro
    windev
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Par défaut
    Bonjour
    Citation Envoyé par frenchsting Voir le message
    utilise des noms de variables parlant et préfixées
    ok je prendrais en considération vos conseils
    Merci beaucoup

  18. #18
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 011
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Windev prend en compte automatiquement la notation hongroise. Je crois même que c'est l'option par défaut lors de la création d'un projet.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/04/2013, 20h34
  2. Detection des touches enfoncées par API
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 20/02/2006, 13h30
  3. Controle Frame par API en C !!
    Par Franck.H dans le forum Windows
    Réponses: 7
    Dernier message: 02/07/2004, 10h03
  4. [VB6] capture de touche par API
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/11/2003, 16h18
  5. Réponses: 2
    Dernier message: 18/10/2003, 15h42

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