在VB中怎样调用外程序?
高手求救:
需要在VB中调用外面已经编好的程序。
但我不知道该怎样做?
请高手指点谢谢。
问题点数:100、回复次数:10Top
1 楼water_j(随心所欲)回复于 2002-05-10 14:22:32 得分 10
api函数SHELLEXECUTE!Top
2 楼wxy_xiaoyu(猪是的看来过倒)回复于 2002-05-10 14:25:52 得分 10
使用SHELL函数,具体用法可以查msdn
Shell App.path ,3Top
3 楼txs()回复于 2002-05-10 14:27:14 得分 10
shellTop
4 楼badboy2002(木头人)回复于 2002-05-10 14:30:13 得分 10
Private Sub Command1_Click()
Shell "E:\My Documents\ff.exe", vbNormalFocus
End SubTop
5 楼softrain(曾经的月光,现在的日光)回复于 2002-05-10 14:37:08 得分 10
shell "app.path"
有些程序有自己的文件类型
可以这样调用:
shell "app.path filename"Top
6 楼expertwjh(点不)回复于 2002-05-10 14:42:14 得分 0
shell "app.path filename"
Top
7 楼wwfang(晴天)回复于 2002-05-10 14:46:25 得分 20
用ShellExecute这个API函数:
Public 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 Form1.hwnd,"open","完整的程序名称及路径","参数",0&,vbnormalfocus
注:第四个参数可以为0&Top
8 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-05-10 14:49:03 得分 30
方法有两个:
1.用VB自己的函数 SHELL
Call Shell("C:\WINDOWS\NOTEPAD.EXE d:\temp\0827.txt", 1)
这条语句的意思就是用目录C:\WINDOWS下的NOTEPAD.EXE 来打开
d:\temp\0827.txt这个文件。缺点是不能保证这个NOTEPAD.EXE
在任何机器上都存在,因此较好的做法是把NOTEPAD.EXE随同自己
的程序一起发布,这样就能万无一失。
2.用WINDOWS的函数 ShellExecute
这不是VB自带的函数,所以必须在程序里对这函数进行声明。
Public 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, vbNullString, "d:\temp\0827.txt",
vbNullString, vbNullString, 1)
这个函数并不关心文件被什么程序打开,如果WINDOWS中现在把.TXT的
文件和NOTEPAD.EXE关联,那自动就会用NOTEPAD.EXE来打开这个文本文
件,如果是和其他的文字处理程序关联的,就会用所关联的程序来打开
这个文件。
优点,比如当知道客户机器上一定安装了EXCEL这个软件,但并不知道
客户把它安装到哪儿了,这时候用第一种方法就力不从心了,而用这条
函数就显得极为方便。缺点,如果打开文件的格式和任何程序都没关联
起来,这时系统就不知道该如何打开它了。
Top
9 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-05-10 14:49:46 得分 0
方法有两个:
1.用VB自己的函数 SHELL
Call Shell("C:\WINDOWS\NOTEPAD.EXE d:\temp\0827.txt", 1)
这条语句的意思就是用目录C:\WINDOWS下的NOTEPAD.EXE 来打开
d:\temp\0827.txt这个文件。缺点是不能保证这个NOTEPAD.EXE
在任何机器上都存在,因此较好的做法是把NOTEPAD.EXE随同自己
的程序一起发布,这样就能万无一失。
2.用WINDOWS的函数 ShellExecute
这不是VB自带的函数,所以必须在程序里对这函数进行声明。
Public 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, vbNullString, "d:\temp\0827.txt",
vbNullString, vbNullString, 1)
这个函数并不关心文件被什么程序打开,如果WINDOWS中现在把.TXT的
文件和NOTEPAD.EXE关联,那自动就会用NOTEPAD.EXE来打开这个文本文
件,如果是和其他的文字处理程序关联的,就会用所关联的程序来打开
这个文件。
优点,比如当知道客户机器上一定安装了EXCEL这个软件,但并不知道
客户把它安装到哪儿了,这时候用第一种方法就力不从心了,而用这条
函数就显得极为方便。缺点,如果打开文件的格式和任何程序都没关联
起来,这时系统就不知道该如何打开它了。
Top
10 楼mjunn(小马)回复于 2002-05-10 14:53:30 得分 0
API的ShellExecute函数!Top
11 楼zyb_8022(紫光)回复于 2002-05-10 14:56:06 得分 0
学习Top




