求一个能在系统启动结束后每隔一定时间(1-2分钟)依次打开几个程序的小软件。

求一个能在系统启动结束后每隔一定时间(1-2分钟)依次打开几个程序的小软件。,第1张

添加一个timer控件

const filecount=2

dim ExeFiles (filecount-1)as string

dim nown as long

sub form_load()

ExeFiles(0)= "c:\windows\notepad.exe" '软件可执行文件的路径

ExeFiles(1)= "x:\xxxxxx\xxxxx.exe"

timer1.interval=60*1000'60秒

timer1.enabled=true

show

' me.hide'隐藏主窗口

end sub

sub timer1_timer()

on error resume next'防止运行不存在的exe文件而报错

shell exefiles(nown)

nown=nown+1

if nown=filecount then unload me

end sub

晕死,以为是VB区,给了你个VB6的例子,换个脚本的吧

把下面的内容复制到记事本里。依照注释,你可以按你的要求修改 filecount和ExeFiles的值使之符合你的要求

另存为xxxxx.vbs

然后把这个VBS文件复制到“开始”-“程序”-“启动”中使其开机自动运行即可

'功能:依次运行指定程序,有时间间隔

on error resume next'防止运行不存在的exe文件而报错,可有可无

DIM objShell

Set objShell = WScript.CreateObject("WScript.Shell")

dim ExeFiles(),filecount

dim nown

filecount=2 '要执行的程序数目

redim ExeFiles(filecount-1)

ExeFiles(0)= "c:\windows\notepad.exe" '软件可执行文件的路径 ,注意序数以0开始

ExeFiles(1)= "x:\xxxxxx\xxxxx.exe '第二个序数是1 ,以下依次类推

'ExeFiles(……

objShell.Sleep 120*1000 '先等120秒

for nown=0 to filecount-2 '依次运行

objShell.Run exefiles(nown)

objShell.Sleep 60*1000 '间隔60秒

next

objShell.Run exefiles(filecount-1)

我写个函数,你试试吧……也许可以用钩子,不过我不知道如何钩住进程结束事件。这个思路就是写个过程,一直循环,每秒扫描一次进程关了没有,关了过程才结束。放心,这个循环不会吃CPU。

建立一个模块,写

Option Explicit

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)'延时过程

Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Sub ShellAndWait(ByVal FileName As String)'FileName就是要打开的程序名

On Error Goto Handle'错误捕捉,防止要打开的文件不存在,当然最好这个过程别写在本过程里,提醒一下而已

Dim Pid As Long

Pid=Shell(FileName,vbNormalFocus)

CycStart:

Call Sleep(1000)'延时1000毫秒,你要是嫌扫描频率低,就降低一点,但太低了会耗CPU

If OpenProcess(1,0,Pid)<>0 Then Goto CycStart

Exit Sub

Handle:

MsgBox "出现错误!"

End Sub

模块Okay

假设App.path是C:\Windows,在某个过程里写

……

ShellAndWait "C:\Windows\1.exe"

ShellAndWait "C:\Windows\2.exe"

ShellAndWait "C:\Windows\3.exe"

……

就实现依次运行了。

PS:本 *** 作可能影响VB6自身,调试前请保存!最好编译成exe之后再调试。

命令执行期间,你的程序会停止响应(都是Sleep()的功劳),所有程序运行完才会有反应。所以运行时别乱点你的窗口。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12101413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存