DOS et VB

momo1405 Messages postés 1 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 22 octobre 2003 - 22 oct. 2003 à 14:34
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 22 oct. 2003 à 15:03
Momo1405Momo1405 ;)

Salut, je suis embete avec l'execution d'un prog "bat". Lorsque je le lance sous DOS, tout est OK, par contre en utilisant la commande "SHELL" dans un prog VB, il ne fait rien. Est ce un problème d'environnement ... (Je suis sous XP). Merci par avance.

1 réponse

cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
22 oct. 2003 à 15:03
'En fait le probleme viendrais que ton bat utilise le repertoire courant pour fonctionner et qu'il est appelé par le shell de VB de manière un peu sauvage.

'Je ne saurais trop te conseigner une fontion que voici. cette fontion est normalement pour afficher du texte DOS dans une application VB (si tu connait un peu l'emulation ca donne le meme style qu'un ePSXe (fenetre Win32 + fenetre DOS)

Private Declare Function AllocConsole Lib "kernel32" () As Long
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, ByVal lpBuffer As String, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FreeConsole Lib "kernel32" () As Long
Private Const STD_OUTPUT_HANDLE = -11&
Private hConsole As Long

'A l'endroit désiré ,

Dim num_written As Long
If AllocConsole() Then
hConsole = GetStdHandle(STD_OUTPUT_HANDLE)
If hConsole = 0 Then MsgBox "Impossible d'allouer STDOUT"
app_name = App.Path
If Right$(app_name, 1) <> "" Then app_name = app_name & ""
app_name = app_name & "test.bat"
txt = Test de la fonction" & vbCrLf
WriteConsole hConsole, txt, Len(txt), num_written, vbNullString
FreeConsole

'Je me suis servis de ca pour faire un front End de mame et ca fonctionne tres bien avec cette fontion alors qu'avec la fontion SHELL rien ne fonctionne. teste toujours ...

'[PaTaTe]
0
Rejoignez-nous