Application de type console (addin)

Description

Bonjour,

suite au post
http://www.vbfrance.com/infomsg_RENVOYER-TEXTE-VERS-CMD_873583.aspx

dans lequel draluorg souhaitais manipuler la console depuis laquelle son appli avait été lancée,
j'ai codé ce petit addin.

Comme je lui ai dit, il suffit d'appeler :

WriteConsole GetStdHandle(STD_OUTPUT_HANDLE), sBuffer, Len(sBuffer), ByVal 0&, ByVal 0&

pour ecrire sBuffer dans la console.

si on utilise une console crée par AllocConsole, pas de probleme, mais si nous souhaitons pouvoir écrire dans une fenetre console existante, il faut modifier le type d'executable que l'on génère.

dans le fichier http://www.mvps.org/st-software/Code/all.zip qu'un de mes pair MVP a réalisé, un outil qui permet de faire ce genre de transformation.

Il suffit même de changer les arguments passés à Link.exe, EBArtSoft nous indique :
"... suffit d'ajouter "/subsystem:console" à la chaine passé a link.exe"

dans le code http://www.vbfrance.com/code.aspx?ID=19357 de EBArtSoft, le nécessaire pour pouvoir enchainer la compilation et la transformation de l'Exe

je n'ai donc aucun mérite, puisque je n'ai fait que fusionner deux codes qui ne sont pas de moi....

Source / Exemple :


Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Private Const STD_OUTPUT_HANDLE As Long = -11&

Private Declare Function GetStdHandle Lib "kernel32.dll" (ByVal nStdHandle As Long) As Long

Private Sub Main()
Dim hConsole As Long
Dim sBuffer As String
Dim lpNumberOfBytesWritten As Long
    sBuffer = "ComputerName : " & Environ$("ComputerName") & vbNewLine & _
              "UserName : " & Environ$("UserName")
    WriteFile GetStdHandle(STD_OUTPUT_HANDLE), sBuffer, Len(sBuffer), lpNumberOfBytesWritten, ByVal 0&
End Sub

Conclusion :


Cet Addin ajoute un bouton dans le Menu 'Projet'

renommez le fichier .dl_ en .dll
et .ex_ en .exe

un exemple est présent dans le repertoire Sample

Codes Sources

A voir également

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.