2010-10-24 8 views
2

Je suis nouveau à Visual basic. J'essaie d'exécuter le fichier .exe à partir de VB. Mais je ne reçois pas la sortie. Mon .exe a des arguments de ligne de commande. Voici mon codeExécuter .exe à partir de Visual Basic 6

Private Sub Command1_Click() 

    Shell "D:\FEP\extractFEPData.exe data.txt", vbNormalFocus 

End Sub 

Dans l'invite cmd Si je donne commande extractFEPData.exe data.txt Il est l'analyse du fichier. Mais en VB après avoir cliqué sur le bouton de commande, rien ne se passe.

S'il vous plaît aidez-moi.

Répondre

0

(En supposant que vous voulez capturer la sortie)

Vous devez utiliser certaines fonctions .NET (voir here) si vous utilisez VB.NET ou une API win32 (voir here) si vous utilisez VB6 .

0

Avez-vous besoin de définir le répertoire actuel? Vous ne faites que passer le nom du fichier, pas un chemin complet.

ChDrive "d:" 

ChDir "d: \ fep" Shell "D: \ FEE \ extractFEPData.exe data.txt", vbNormalFocus

VB6 Manual

0

Vous pouvez le faire en utilisant la méthode WShell.Exec pour exécuter le programme et renvoyer un objet WshScriptExec qui a une propriété StdOut qui est un objet TextStream que vous pouvez lire.

Cela peut être un peu maladroit car il ne prend en charge que les appels bloquants. Cependant, vous pouvez utiliser les appels d'API pour exécuter le processus externe et rediriger ses flux d'E/S standard vers des canaux anonymes que le programme VB6 peut lire/écrire. C'est plus de travail mais vous obtenez plus de contrôle.

Peut-être cherchez-vous autre chose?

1
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (_ 
        ByVal hwnd As Long, _ 
        ByVal lpOperation As String, _ 
        ByVal lpFile As String, _ 
        ByVal lpParameters As String, _ 
        ByVal lpDirectory As String, _ 
        ByVal nShowCmd As Long) As Long 

Private Const SW_HIDE As Long = 0 

Private Const SW_SHOWNORMAL As Long = 1 

Private Const SW_SHOWMAXIMIZED As Long = 3 

Private Const SW_SHOWMINIMIZED As Long = 2 


Private Sub Label1_Click() 

    ShellExecute Me.hwnd, "Open", "G:\PN Technologies\VB\Krishna & Co\KrishnaCo.exe", vbNullString, "C:\", SW_SHOWNORMAL 

End Sub 
Questions connexes