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