我是视觉基础的新手。我正在尝试从VB执行.exe
文件。但我没有得到输出。我的.exe
有命令行参数。以下是我的代码
Private Sub Command1_Click()
Shell "D:\FEP\extractFEPData.exe data.txt", vbNormalFocus
End Sub
在cmd提示符中如果我给出命令extractFEPData.exe data.txt
它正在解析文件。但在VB中单击命令按钮后没有任何反应。
请帮帮我。
答案 0 :(得分:4)
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
答案 1 :(得分:2)
过去我一直使用ShellExecute Win32 API。你可以在下面的VB6中找到很好的参考资料。
答案 2 :(得分:0)
答案 3 :(得分:0)
您需要设置当前目录吗?您只传递文件名,而不是完整路径。
ChDrive "d:"
ChDir“d:\ fep” Shell“D:\ FEP \ extractFEPData.exe data.txt”,vbNormalFocus
答案 4 :(得分:0)
您可以使用WShell.Exec方法执行此操作以运行程序并返回具有StdOut属性的WshScriptExec对象,该属性是您可以读取的TextStream对象。
这可能有点笨重,因为它只支持阻止呼叫。但是,您可以使用API调用来运行外部进程,并将其标准I / O流重定向到VB6程序可以读取/写入的匿名管道。这是更多的工作,但你得到更多的控制。
也许你正在寻找别的东西?