发新话题
打印

如何改进Shell函数

如何改进Shell函数

  当你使用Shell函数的时候,在VB程序里运行另一个可执行程序是很容易的。在本篇文章里,我将向你演示如何通过一种简单的方式来改进Shell的功能。
Shell接受两个自变量。第一个是将要运行的EXE文件的名称,包括其路径。第二个自变量用来指定程序的窗口样式。这个自变量是可选的;如果省略掉的话,程序就会以最小化的形式运行。这里所展现的技术在工作的时候不会理会程序的窗口样式,甚至程序没有窗口都可以。(关于窗口样式自变量的更多信息,请参考VB的帮助。)

Shell会异步地运行目标程序,这就意味着执行可以在第二个程序执行完之前就返回VB程序。在很多情况下,这没有问题;但是在有的情况下,这可能就是问题了。一个例子是,当你的VB程序在某种程度上要依靠外壳程序完成其操作的结果。在这种情况下,你就需要某种方式来暂停VB程序,直到另一个程序结束。
第一步是取得外壳程序的句柄。Shell函数会返回其程序的ID,或者PID。一旦有了这个,你就可以使用OpenProcess API函数来取得句柄:
Public Declare Function OpenProcess Lib "kernel32" _
(ByValdwDesiredAccess As Long, _
ByValbInheritHandle As Long, _
ByValdwProcessId As Long) As Long

TOP

发新话题