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
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.