Board logo

标题: 限制a.vbs 的运行次数? [打印本页]

作者: ooaf     时间: 2009-2-23 12:53    标题: 限制a.vbs 的运行次数?

每天限制a.vbs 的运行次数?
如果a.vbs 运行次数超过2,则退出。

[ Last edited by ooaf on 2009-2-23 at 13:16 ]
作者: HAT     时间: 2009-2-23 13:57
本版搜索“次数”,可以找到几个思路。
作者: 5872169     时间: 2009-2-23 16:59
for i=1 to 2…………next
这是运行二次
作者: ooaf     时间: 2009-2-23 17:13
我的意思是,a.vbs 运行结束后,再运行。 而不是重复运行2次。
如: 

我把a.vbs放在启动项里,一天可能开机好几次,那么a.vbs 就会运行好几次,因此,a.vbs 每次运行时,检查  当天的运行次数,超过2就不运行。
作者: newxso     时间: 2009-2-23 18:54
在你的原代码前面加上以下一段代码:

Set WshShell=WScript.CreateObject("WScript.Shell")
Key="HKEY_CURRENT_CONFIG\Software\avbs\"
on error resume next
Last=WshShell.RegRead(Key&"Start")
a=split(Last,"\"):LastDay=a(0)
if LastDay=CStr(date()) then
   b=a(1):c=a(2)
   if c<>"" then
      WshShell.Popup "今天内你已经运行了两次,再见!   ",5,"警告!",VbExclamation
      Wscript.Quit
   end if
else
   WshShell.RegDelete(Key&"Start")
end if
on error goto 0
if c="" then WshShell.Regwrite(Key&"Start"),date()&"\1\2"
if b="" then WshShell.Regwrite(Key&"Start"),date()&"\1"

RE:6楼)更新以上代码如下(没有提示):

Set WshShell=WScript.CreateObject("WScript.Shell")
num=2  '设置允许启动次数
Key="HKEY_CURRENT_CONFIG\Software\avbs\"
on error resume next
Last=WshShell.RegRead(Key&"Start")
a=split(Last,"\"):LastDay=a(0)
if LastDay=CStr(date()) then
   b=cint(a(1)):if b=num then:Wscript.Quit
else
   WshShell.RegDelete(Key&"Start")
end if
on error goto 0
ctr=b+1
WshShell.Regwrite(Key&"Start"),date()&"\"&ctr


[ Last edited by newxso on 2009-2-26 at 19:54 ]
作者: ooaf     时间: 2009-2-26 05:11
没有提示的
Set WshShell=WScript.CreateObject("WScript.Shell")
Key="HKEY_CURRENT_CONFIG\Software\avbs\"
on error resume next
Last=WshShell.RegRead(Key&"Start")
a=split(Last,"\"):LastDay=a(0)
if LastDay=CStr(date()) then
   b=a(1):c=a(2)
   if c<>"" then
      a=a
      Wscript.Quit
   end if
else
   WshShell.RegDelete(Key&"Start")
end if
on error goto 0
if c="" then WshShell.Regwrite(Key&"Start"),date()&"\1\2"
if b="" then WshShell.Regwrite(Key&"Start"),date()&"\1"

作者: ooaf     时间: 2009-2-26 10:37
谢谢,我知道了。我把提示删去,是因为我想让脚本隐藏执行。