Ecrire dans une console avec visual basic (write in a console with vb)

5/5 (7 avis)

Snippet vu 19 778 fois - Téléchargée 21 fois

Contenu du snippet

Le code ci-dessous est relativement court pour des raisons de clarté. Il vous permettera d'afficher un message dans une console DOS.
Le programme devra être lancé dans une console DOS et non directement (sinon ça quittera tout seul).

The following code above is relatively short for the comprehension. It allows you to display a message in DOS console.
This program have to be launch in a DOS console and not directly (otherwise it will exit)

Source / Exemple :


Option Explicit

Private Declare Function FreeConsole Lib "kernel32" () As Long
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long
Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, ByVal lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Private Declare Function AttachConsole Lib "kernel32" (ByVal dwProcessId As Long) As Long
Private Const STD_OUTPUT_HANDLE = -11&

'Handle du programme parent (console)
Private hConsole As Long
Sub Main()
    'On attache le programme à la console parent
    If (AttachConsole(-1&) = 0) Then Exit Sub
           
    'On capture le handle de la sortie standard
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE)
    
    'On définit un titre à la fenetre en cours
    SetConsoleTitle "Hello World!"
    
    'On affiche un message
    ConsolePrint "Hello World!" & vbCrLf
    
    'On se détache du processus parent
    FreeConsole
End Sub
Private Sub ConsolePrint(MsgOut As String)
    WriteConsole hConsole, MsgOut, Len(MsgOut), vbNull, vbNull
End Sub

Conclusion :


Ce programme affichera "Hello World" dans la console DOS.

Ici seul la méthode 'AttachConsole' a été utilisé.

On aurait pu créér une console indépendante en utilisant la méthode Alloc avec le prototype suivant:
Private Declare Function AllocConsole Lib "kernel32" () As Long

A voir également

Ajouter un commentaire Commentaires
EvildarkEurope Messages postés 51 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 11 octobre 2014
21 août 2007 à 19:36
Super code
A+
cs_zifnig Messages postés 16 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 28 mai 2007
28 mai 2007 à 08:58
C'est tout à fait ce que je cherchais et bien qu'il existait d'autres exemples sur codesources, ils ne cadraient pas avec ce que je cherchais.

Merci burster42.
burster42 Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 26 mai 2007
26 mai 2007 à 10:30
Bonjour à vous tous et merci pour vos commentaires.
Je suis entièrement d'accord avec toi EBartSoft mais leur code n'était pas aussi simple à comprendre que le mien. J'ai vraiment mis que le nécessaire pour pouvoir comprendre l'essentiel.

A bientôt ;-)
sikimyway Messages postés 2 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 30 juin 2011
25 mai 2007 à 19:11
merci de votre aide que DIEU vous benisse.
votre code est très passionnant.
waluigii Messages postés 35 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 5 janvier 2008
24 mai 2007 à 01:24
Slt,

Code très intéressant: je l'accorde... mais EBARTSOFT a tout à fait raison sur ça...!

@+
Afficher les 7 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.