写了一个vb的程序,用来把原来写的几个vb和vc的程序整合起来。就是使用Shell函数。结果发现,vc的程序可以很好的显示,但vb写的却一运行就最小化了。仔细查看了一下以下文章,才发现原来shell函数的默认显示模式是windowstyle是等于vbMinimizedFocus。然后就是直接加上一个vbNormalFocus。一切ok!
vb的shell函数用法:
功能:执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的任务ID,若不成功,则会返回0。
语法:Shell(pathname[,windowstyle])
Shell函数的语法含有下面这些命名参数:
pathname必要参数。Variant(String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle可选参数。Variant(Integer),表示在程序运行时窗口的样式。如果windowstyle省略,则程序是以具有焦点的最小化窗口来执行的。
shellExecute函数:
其用法较为复杂,但是功能更加强大。
HINSTANCE ShellExecute(
HWND hwnd,'父窗口句柄
LPCTSTR lpOperation,'操作或打开方式 "edit","explore","open","find","print","NULL"
LPCTSTR lpFile,'文件名,前面可加路径
LPCTSTR lpParameters,'参数
LPCTSTR lpDirectory,'默认文件夹
INT nShowCmd '显示方式
);
ShellExecute的功能是运行一个外部程序
(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),
并对外部程序有一定的控制。shell函数在这个方面先相对较弱,
在大多数情况下ShellExecute是更多的被使用的,
lR = ShellExecute(Me.hWnd,"Open",sFile,"",vbNormalFocus)
If (lR < 0) Or (lR > 32) Then
' 成功
Else
MsgBox "无法打开 '" & sFile & "'",vbInformation
End If
附: 本函数还可以用来连接到网页,照下面写就行了:ShellExecute 0&,vbNullString,"http://coolbasic.yeah.net",vbNormalFocus 或者这样写来发送Email:ShellExecute me.hwnd,"mailto:vbcode@vbcode.com",SW_SHOW另外有ShellExecute的替代用法,更加简单实用,不用API,一句Shell搞定!连接到网页: Shell "rundll32.exe url.dll,FileProtocolHandler http://www.online.sh.cn"打开文件: Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "SHELLTST.TXT"