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

URGENT !!!! --- Sortie standard de Vb -- URGENT !!!!

2 réponses
Avatar
Jo
Bonjour à tous !

Mon problème est très simple ( enfin en apparence ),
je lance un exe Vb6 depuis un bat dos,
je souhaiterai, via une redirection dos ( > ) récupérer des infos
de mon exe Vb6.
Autrement dit, je souhaiterai l'équivalent de l'écriture vers
la sortie standard C : printf mais en Vb6 !!!!!!
Je ne souhaite pas changer de méthode, il me faut impérativement
récupérer via la redirection dos des éléments générés depuis mon VB6.

JE VEUX ECRIRE DE VB6 VERS LA SORTIE STANDARD PUIS RECUPERE PAR LA
REDIRECTION LE CONTENU DE CE QUE J'AI ECRIT !!

PAR AVANCE, UN GRAND MERCI A MON SAUVEUR

Jonathan

2 réponses

Avatar
Vincent Guichard
Jo a écrit :
Bonjour à tous !

Mon problème est très simple ( enfin en apparence ),
je lance un exe Vb6 depuis un bat dos,
je souhaiterai, via une redirection dos ( > ) récupérer des infos
de mon exe Vb6.
Autrement dit, je souhaiterai l'équivalent de l'écriture vers
la sortie standard C : printf mais en Vb6 !!!!!!
Je ne souhaite pas changer de méthode, il me faut impérativement
récupérer via la redirection dos des éléments générés depuis mon VB6.

JE VEUX ECRIRE DE VB6 VERS LA SORTIE STANDARD PUIS RECUPERE PAR LA
REDIRECTION LE CONTENU DE CE QUE J'AI ECRIT !!

PAR AVANCE, UN GRAND MERCI A MON SAUVEUR

Jonathan





Bonjour,

http://www.google.fr/search?q=vb6+standard+output

premier lien.

De rien

Vincent Guichard
Avatar
Picalausa François
"Jo" a écrit dans le message de news:

Autrement dit, je souhaiterai l'équivalent de l'écriture vers
la sortie standard C : printf mais en Vb6 !!!!!!

JE VEUX ECRIRE DE VB6 VERS LA SORTIE STANDARD PUIS RECUPERE PAR LA
REDIRECTION LE CONTENU DE CE QUE J'AI ECRIT !!

PAR AVANCE, UN GRAND MERCI A MON SAUVEUR




Hello,

Il te "suffit" de récupérer stdout (GetStdHandle) et d'écrire dessus
(WriteFile)... simple quand on s'appelle application console... moins dans
les autres cas! On peut toujours s'allouer une nouvelle console
(AllocConsole), ou sous XP s'attacher à la console parente
(AttachConsole(-1)), mais on ne peut toujours pas réutiliser ces données
d'une manière ou d'une autre dans le batch...

Comment faire alors? c'est simple : réaliser une application console!
Comment faire? modifier le bit approprié dans l'exécutable PE après
compilation (très simple... pour la format des exécutables PE, voir sur le
site de Microsoft) ou alors passer les bons paramètres au linker en
utilisant l'une ou l'autre technique pour intercepter les appels à celui ci,
ou encore... (ben oui, c'est simple!)

Donc, si tu as EditBin:
editbin.exe /SUBSYSTEM:CONSOLE Projet1.exe
où projet1.exe doit être remplacé par le nom de l'exécutable

Ensuite, dans un module:
Option Explicit

Private Declare Function GetStdHandle _
Lib "Kernel32" _
( _
ByVal nStdHandle As Long _
) _
As Long
Private Declare Function WriteFile _
Lib "Kernel32" _
( _
ByVal hFile As Long, _
lpBuffer As Any, _
ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, _
lpOverlapped As Any _
) _
As Long

Private Const STD_OUTPUT_HANDLE = -11&
Private hConsole As Long

Public Sub WriteText(Text As String)
Dim CharWritten As Long

If (hConsole) Then
WriteFile hConsole, ByVal Text, Len(Text), CharWritten, ByVal 0&
End If
End Sub

Public Sub GetConsole()
hConsole = GetStdHandle(STD_OUTPUT_HANDLE)
End Sub

Public Sub Main()
GetConsole
WriteText "Hello World!"
End Sub
En effectuant quelques recherches, cet article semble tout expliquer encore
plus complètement:
http://vb.mvps.org/samples/project.asp?id=console

--
Picalausa François

PS: PAS BESOIN DE CRIER! Ca fait mal aux yeux....