Shell函数语法
Shell(需要执行的程序路径,程序打开时候的模式)
我们先说第一个参数:需要执行的程序路径

这是必选参数,可以是完整的程序路径,比如说程序在“c:\测试.exe”我们可以这样写:
这样运行后点击按钮就可以打开C盘目录下“测试.exe”,如果这个路径文件不存在的话会报错:

除了完整路径,还可以直接输入需要打开的程序名称,比如:
为什么没有写完整路径也能打开程序并且不报错呢?是因为如果你不写路径,直接写程序名称,VB会默认打开系统盘内的文件,就像在“开始-运行”里面直接输入程序名称就可以打开一样。还可以这样打开的程序包括:“explorer.exe(资源管理)”,"notepad.exe(记事本)"等等,同理,你把你自己写的程序放在系统盘“C:\Windows”目录中,然后按直接连接你的程序名,不用绝对地址也可以打开。
这个参数可以加执行命令,什么意思呢?
我们知道,系统中explorer.exe是资源管理器,我们在资源管理器的地址栏里输入网址后回车,电脑会调用浏览器来打开,大家可以试一下:
我们在VB代码中调用explorer.exe 加一个空格,后面加上网址,就像这样:
我们运行一下:
我们了解了第一个参数:程序名称和路径,再看第二个参数:程序打开时候的样式,这个参数是可以选的,也就是说,有也行,没有也可以。这个参数有什么用呢?它可以让打开的程序最大化,最小化,隐藏打开,打开并设置焦点等:
VbHide 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 窗口会以一个具有焦点的图标来显示(缺省值)。
VbMaximizedFocus 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 窗口会以一个图标来显示,而当前活动的窗口仍然保持活动
我们拿记事本举两个例子:
这种方式打开的记事本,我们找不到记事本的窗口,但是可以在系统的进程列表找到它,一般病毒或者不可告人的程序爱这么干,程序表面是个外挂或者工具,其实暗地里已经释放病毒并且用隐藏方式打开,一般用户察觉不到。
还可以打开记事本并让记事本最小化:
其他用法我都总结了一个示例,大家可以在文章末尾的下载地址来下载。
通过Shell 函数都能打开什么文件
Shell函数能打开的文件类型,除了上面说的可执行文件(.exe),还可以打开批处理文件(.bat)和命令提示符文件(.cmd)。
我们下一节课就讲利用Shell函数和批处理文件完成许多有趣的功能。