这需要打开一个新cmd窗口才行,必须调用winAPI函数,你可以这样:
加上#include<windows.h>
ShellExecuteA(0,0,"c:\\a.exe"顷游贺,"-t 1",0,SW_SHOW)
ShellExecuteA(0,0,"c:\\a.exe","-t 2",0,SW_SHOW)
如果他说没有ShellExecuteA函数,就用ShellExecute
不过a.exe里面雀派请加上system("pause")或者getc之类的函数,不然打开的黑窗口会磨没一闪而过
用VB内置函数 Dir 可以列取指定目录中的文件,通过 right 函数可以筛选出该目录的 Exe 文件,在列举时把这些 Exe 文件路径放进一个数组中,然后用一个 Timer 控件实现每一秒(Interval 值设为1000 即 1 秒)调用一个 Exe 文件,这里可以先把 Timer 控件的 Enable 属性设为 False,调用函数用VB内置的 Shell 或用培启Win API ShellExecute 都可以。 大至代码如下:Option Explicit
Dim Files() As String
Dim InvokePos As Integer
Private Sub Form_Load()
Dim hFile As String
Dim Dirname As String
Redim Files(0)
Timer1.Enable=false
Dirname="C:\Example\" '这里改成你要的路径
hFile = Dir(Dirname, vbNormal + vbDirectory)
Do While hFile <>"哗悄"
If hFile <>"." And hFile <>".." And hFile<>"pagefile.sys" Then
If (GetAttr(Dirname &hFile) And vbDirectory) <>vbDirectory And LCase(Right(hFile,4))=".exe" Then
Redim Preserve Files(Ubound(Files)+1)
Files(Ubound(Files)) = hFile
End If
End If
hFile = Dir
Loop
Timer1.Enable=true
End Sub
'这里是 Timer 控件的代码 也可以用 API 函数 setTimer 和 KillTimer 来实现
Private Sub Timer1_Timer()
if InvokePos>Ubound(Files) then InvokePos=0 '如果不循环调用,就把 InvokePos=0 改为 Timer1.Enable=False
InvokePos=InvokePos+1
Shell Files(InvokePos) '这里可以用 API 函数 ShellExecute 来代替
End Sub
'如果要知道一个程序是否运行结束,请看参考文档
http://www.chinavb.net/Article.Asp?id=1136
用 Scripting.FileSystemObject 组件中的 Files 和 Folder 对象也可以列举指定目录中的文件配芦如
上面代码我没有测试过,但思路就是这样的,因为我的计算机上没有装 VB ,所以没有测试,不过代码应该运行正常
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)