Private Sub mnu311_Click() Dim comm As String comm = "micaps20 para1.dat C:\MICAPS\micaps20\combine\h500.zht" Open "c:\micaps\micaps20\带综合图启动.bat" For Output As #1 Print #1, comm Close #1 Shell "c:\micaps\micaps20\带综合图启动.bat", 3 End Sub当我去掉Shell "c:\micaps\micaps20\带综合图启动.bat", 3 用双击能打开 带综合图启动.bat
既然双击能打开,那么不如调用 Windows 的 ShellExecute 函数打开,这样方便。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 ShellExecute Me.hWnd, "open", "c:\micaps\micaps20\带综合图启动.bat", "", 0, 0
MICAPS20 <初始化文件名> <综合图文件名> <图像格式指示码> <图像文件名>
双击时是在当前目录,所以不用加完全路径 Shell 时是在应用程序的目录,当然找不到 MICAPS20.exe comm = "micaps20 para1.dat C:\MICAPS\micaps20\combine\h500.zht"你把其中带路径的内容都加全 comm = ":\MICAPS\micaps20\micaps20.exe :\MICAPS\micaps20\para1.dat C:\MICAPS\micaps20\combine\h500.zht"
Dim comm As String
comm = "micaps20 para1.dat C:\MICAPS\micaps20\combine\h500.zht"
Open "c:\micaps\micaps20\带综合图启动.bat" For Output As #1
Print #1, comm
Close #1
Shell "c:\micaps\micaps20\带综合图启动.bat", 3
End Sub当我去掉Shell "c:\micaps\micaps20\带综合图启动.bat", 3 用双击能打开 带综合图启动.bat
para1.dat 的路径C:\MICAPS\micaps20\para1.dat
改为comm = "D:\vb\micaps20.exe para1.dat C:\MICAPS\micaps20\combine\h500.zht"
用文本打方式开带综合图启动.bat ,其内容是micaps20 para1.dat C:\MICAPS\micaps20\combine\h500.zht 能够正常运行
ShellExecute Me.hWnd, "open", "c:\micaps\micaps20\带综合图启动.bat", "", 0, 0
Shell 时是在应用程序的目录,当然找不到 MICAPS20.exe
comm = "micaps20 para1.dat C:\MICAPS\micaps20\combine\h500.zht"你把其中带路径的内容都加全
comm = ":\MICAPS\micaps20\micaps20.exe :\MICAPS\micaps20\para1.dat C:\MICAPS\micaps20\combine\h500.zht"
运行到 ShellExecute Me.hWnd, "open", "c:\micaps\micaps20\带综合图启动.bat", "", 0, 0 时
出现子程序或函数未定义错误,请问是怎么回事呢?