VB的计划任务的问题

来源:互联网 发布:linux 时区设置 编辑:程序博客网 时间:2024/05/21 10:23

做一个监控的小程序,担心它中途挂掉,所以把它加到了计划任务里,每天执行一次。

程序执行Form_load时

程序大致结构如下:

</pre><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><pre name="code" class="vb">
Private Sub Form_Load()    If App.PrevInstance = False Then        '执行代码1        Timer1.Enabled = True        Timer1.Interval = 1000    else        '执行代码2        Unload Me        Exit Sub    end ifend subPrivate Sub Timer1_Timer()    '执行定时作业end sub


编译之后的程序,手工执行exe时,总是正确的:第一次打开,会先”执行代码1“,然后执行定时作业;以后打开时,会执行代码2然后退出。

但是将这个程序加载到计划任务后,代码1正常执行了,但是Timer1.Enabled=True等有关计时器的部分却没有任何效果,定时作业的内容没有被执行。不明白为什么会出现这种错误,计划任务中调用的程序有什么特殊的要求吗?。。。

12-1续:

应该是操作系统问题,在个人的电脑上运行一切正常,但目标电脑是一台Windows Embedded Standard,在上面直接运行Exe功能是正常的,但运行计划任务调用Exe的时候就出现了问题,Timer控件及以后的内容都没有执行。只有试试能不能用sleep解决了

12-1完结:

最后结果:是计划任务使用的账号不对。计划任务的账号应该和当前用户名一致。而操作系统中的管理员默认密码为空,在该操作系统下是不能创建计划任务的。我为了方便使用了NT Authority\system创建了计划任务,导致任务启动时只能在任务管理器中看见进程,但该进程却无法做任何有效操作(弹出窗口、创建文件都不可以)。即使使用计划任务启动一个bat文件,再在bat文件中调用我的exe程序也是一样没有执行效果。

最后,给管理员账号加了密码,用管理员账号创建计划任务,执行一切正常。。。

(其实是用当前登录账号创建计划任务,才能在当前账号登录时正常执行)

下一年的4-27:

总结:

空密码添加计划任务的问题,可以在组策略[gpedit.msc]中做修改来实现空密码建计划任务:

本地计算机策略→计算机配置→Windows设置→安全设置→本地策略→安全选项→账户:使用空密码的账户只允许进行控制台登录      设置为禁用。

添加一天启动多次的计划任务:

XP下计划任务的高级:重复任务间隔设置为1分钟,期间设置为24小时【不能选择就手敲时间】。注意开始时间要选在比当前时间更早的时间点,这样应用之后就可以立即执行了。

0 0
原创粉丝点击