2010-10-24 234 views
2

我是新的visual basic。我試圖從VB執行.exe文件。但我沒有得到輸出。我的.exe有命令行參數。下面是我的代碼從Visual Basic 6執行.exe

Private Sub Command1_Click() 

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

End Sub 

在命令提示符如果我給命令extractFEPData.exe data.txt據分析文件。但在VB中點擊命令按鈕後沒有任何反應。

請幫幫我。

回答

0

(假設你想捕捉的輸出)

您需要使用一些.NET函數(見here)如果你使用VB.NET 或部分的Win32 API(見here)如果您正在使用VB6 。

0

您是否需要設置當前目錄?您只傳遞文件名稱,而不是完整路徑。

ChDrive "d:" 

CHDIR 「d:\ FEP」 殼 「d:\ FEP \ extractFEPData.exe data.txt中」,vbNormalFocus

VB6 Manual

0

爲此,可以使用的方法WShell.Exec做運行該程序並返回一個具有StdOut屬性的WshScriptExec對象,該屬性是可以讀取的TextStream對象。

這可能有點笨重,因爲它只支持阻塞呼叫。但是,您可以使用API​​調用來運行外部進程並將其標準I/O流重定向到VB6程序可讀取/寫入的匿名管道。這是更多的工作,但你得到更多的控制。

也許你正在尋找別的東西?

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