Ce code propose une classe permettant de faire très facilement une application console (Ou une appli GUI lançant une console).
La classe permet de lire, écrire, executer des commandes... dans la console.
Le code n'est pas basé sur des pipes comme certains sources de vbfrance, mais sur du Win32.
Méthodes :
ReadLine
ReadChar
WriteLine
WriteString
Hide
Execute
SetColor
Show
Attributs :
Title
ProcessSignal
LastError (Lecture seule)
Visible (Lecture seule)
L'application n'est pas une appli console au sens stricte : le PE reste de type GUI.
Cela peut être génant si on veut utiliser l'appli à partir d'une invite : l'application lance une nouvelle console.
Je fournis donc un utilitaire, GuiToConsole, capable de changer le sous système du PE. L'application devient alors une authentique application console.
La classe est pleinement utilisable dans une vrai application console. En cas de console existante, la méthode show ne créé pas de nouvelle console, et la méthode Hide ne supprime pas la console originale.
Source / Exemple :
Dim uConsole As New clsConsole
Private Sub Main()
With uConsole
.Show
.Title = "Hello world en VB6"
.WriteLine "Hello world !"
.Execute "pause"
.Hide
End With
End Sub
Conclusion :
Pour faire tourner une appli VB6 sans form, il faut faire une sub Main et le spécifier dans les propriétés du projet.
(Projet, Propriété de MonProgramme, Objet de démarrage, Sub Main).
Non non. C'est peut être une application console, mais ça reste du VB6 : elle est donc soumise au même contraintes qu'une application classique. msvbvm60.dll est donc indispensable. Bien qu'une appli VB6 compilée en natif n'est pas vraiment besoin de la machine virtuelle contenue dans la dll, le compilo de VB6 génère un code qui multiplie les appels à cette dll. Il faut aussi vb6fr.dll, bien que quelques techniques permettent de s'en débarrasser.
Si tu veux des vrais stand alone il faut que tu t'oriente vers du C/C++ ou du Delphi.
Quoiqu'il en soit, avec un installeur comme InnoSetup, le fait que les applications nécessitent des dlls n'est pas vraiment un problème...
je voulais savoir si on pouvais executer ce programme dans une autre machine sans les dll de vb, merci
J'ai eu cette impression deux seconde d'avoir deux fenêtre DOS à l'écran, une avec le HelloWorld, et l'autre avec le Sample... Mais en fait non : ce n'est que VB6 qui ne se raffraichit pas, et donc n'efface pas la console qui est devant elle... show et hide fonctionnent. Attention quand même, ça foirerait certainement de faire plusieurs console avec ce code.
couplé avec
http://www.vbfrance.com/codes/APPLICATION-TYPE-CONSOLE-ADDIN_41156.aspx
tu génèrera un VRAI exe console : ton exe pourra être appelé depuis une fenetre de commande, et ecrire dans cette même fenetre (et non dans une nouvelle)
domage que le Sample ouvre une deuxième fenetre DOS...
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.