Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Equivlalent VB6 de Getch() en C

3 réponses
Avatar
Arnaud
Bonjour à tous

Connaissez vous l'equivalent en VB6 de l'instruction C getch() ???

Merci

Arnaud

3 réponses

Avatar
Jean-marc
Arnaud wrote:
Bonjour à tous



Hello,

Connaissez vous l'equivalent en VB6 de l'instruction C getch() ???



Sans vouloir être pédantique, getch() n'est PAS une fonction C.

Le langage C définit la macros getchar, qui elle même est une macro
qui vaut getc(stdin), getc() étant elle même une macro dont
l'implémentation est dépendante de l'environnement. Le tout est déclaré dans
stdio.h.

Quand à getch(), c'est une fonction (mais PAS une fonction ANSI C) qui
est définie dans conio.h (qui est un header NON ANSI), existant
uniquement dans l'environnement Dos/Windows.

Pour en revenir à ta question, il n'y a pas en VB un équivalent direct de
getch() ou getchar(), pour la simple raison que VB ne sait pas lire stdin.
On peut dependant depuis VB réaliser un programme console, et moyennant
des appels à l'API Windows, on peut retrouver des équivalents,
plus ou moins proches. Au besoin, on peut utiliser ces API pour réécrire
une fonction ayant le comportement de getchar.

Voir Cette fiche Microsoft qui explique comment on peut interagir avec
la console dans un programme VB, grâce aux API:
http://support.microsoft.com/kb/q239588/

On peut aussi faire des choses avec le Scripting runtime:
http://www.tek-tips.com/faqs.cfm?fidV47

Enfin voici la doc la plus complète sur le sujet, toute l'API
console de Windows dans MSDN:
http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx

Note: c'est ce que tu cherches: les fonctions de conio.h sont
toutes implémentées par des appels à ces APIs.

Bonne lecture!

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Arnaud
Merci de ta reponse :o)

J'ai trouvé entre temps de mon coté la solution assez simple d'avoir recours
à l'evenement keypress de VB6

Private Sub Picture1_KeyPress(KeyAscii As Integer)
Char = Chr(KeyAscii)
KeyAscii = Asc(UCase(Char))
End Sub

Cordialement

Arnaud

----- Original Message -----
From: "Jean-marc"
Newsgroups: microsoft.public.fr.vb
Sent: Sunday, December 14, 2008 7:26 PM
Subject: Re: Equivlalent VB6 de Getch() en C


Arnaud wrote:
Bonjour à tous



Hello,

Connaissez vous l'equivalent en VB6 de l'instruction C getch() ???



Sans vouloir être pédantique, getch() n'est PAS une fonction C.

Le langage C définit la macros getchar, qui elle même est une macro
qui vaut getc(stdin), getc() étant elle même une macro dont
l'implémentation est dépendante de l'environnement. Le tout est déclaré
dans
stdio.h.

Quand à getch(), c'est une fonction (mais PAS une fonction ANSI C) qui
est définie dans conio.h (qui est un header NON ANSI), existant
uniquement dans l'environnement Dos/Windows.

Pour en revenir à ta question, il n'y a pas en VB un équivalent direct de
getch() ou getchar(), pour la simple raison que VB ne sait pas lire stdin.
On peut dependant depuis VB réaliser un programme console, et moyennant
des appels à l'API Windows, on peut retrouver des équivalents,
plus ou moins proches. Au besoin, on peut utiliser ces API pour réécrire
une fonction ayant le comportement de getchar.

Voir Cette fiche Microsoft qui explique comment on peut interagir avec
la console dans un programme VB, grâce aux API:
http://support.microsoft.com/kb/q239588/

On peut aussi faire des choses avec le Scripting runtime:
http://www.tek-tips.com/faqs.cfm?fidV47

Enfin voici la doc la plus complète sur le sujet, toute l'API
console de Windows dans MSDN:
http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx

Note: c'est ce que tu cherches: les fonctions de conio.h sont
toutes implémentées par des appels à ces APIs.

Bonne lecture!

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Jean-marc
Arnaud wrote:
Merci de ta reponse :o)

J'ai trouvé entre temps de mon coté la solution assez simple d'avoir
recours à l'evenement keypress de VB6

Private Sub Picture1_KeyPress(KeyAscii As Integer)
Char = Chr(KeyAscii)
KeyAscii = Asc(UCase(Char))
End Sub



Je ne l'avais même pas mentionné, pensant que tu souhaitais du
mode console :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;