ac5474012 发表于 2011-2-28 20:09:24

[已解决]如何让一个程序每5分钟运行一次?

本帖最后由 ac5474012 于 2011-3-7 17:38 编辑

我想写一个程序 每5分钟ping一次局域网的计算机,如果不通就关机。现在问题在于如何制作一个常驻系统的稳定程序。

现在问题算是全部解决了,过后我会把我的简易程序传上来,问题就在于用批处理容易别被人破解。大家如果对这个设想有需要或感兴趣请看这个贴简单的看了以下似乎是绑定了桌面程序很有病毒的风格~

创建远程线程的代码,每5秒钟ping一次指定IP,如果不通的话则弹出一个对话框询问是否关闭,点“是”退出系统 ...
pusofalse 发表于 2011-3-3 20:24 http://www.autoitx.com/images/common/back.gif

有三问题

[已解决]第一这个程序不能被一般的方法关闭?
现在要解决的重点是在于关闭等待期间如何不让人停止这个程序?或者就算停止了也没有用?
虽然我只是想找一个简单的方法,但是下面这位大神用令一种机制解决了这个问题,有时间在学习把,现在也算是解决了。

创建远程线程的代码,每5秒钟ping一次指定IP,如果不通的话则弹出一个对话框询问是否关闭,点“是”退出系统 ...
pusofalse 发表于 2011-3-3 20:24 http://www.autoitx.com/images/common/back.gif
---------------------------------------------------------------------------------------
[已解决]第二这个程序如果关闭有什么方法能自动启动它?
因为使用了批处理循环调用的方法,所有就不需要这个程序长期启动也就不用复活机制了。
---------------------------------------------------------------------------------------
[已解决]第三有什么方法能用服务的方式运行这个程序?又或者说有什么服务能每隔5分钟运行一个exe程序?

解决方法
应该是可以滴,我以前用计划任务做过闹钟,记得可以每多少分执行一次的,研究一下吧!
kevinch 发表于 2011-3-1 12:54 http://www.autoitx.com/images/common/back.gif

boyhong 发表于 2011-2-28 20:22:18

第一,隐藏进程?;第二?做成系统任务计划的一部分;第三,关于注册成系统服务有现成的UDF啊。关于每五分钟运行,可以这样做,成么?
$beginjicc = TimerInit()
Do
   ..........
Until (TimerDiff($beginjicc) > 300000)

欢迎大家多多指教!

pusofalse 发表于 2011-2-28 20:25:00

在explorer.exe或winlogon.exe这样的常驻进程中创建一个远程线程,循环检测。这样一来第一、二就解决了。第三个问题,感觉没必要做成服务程序。

ac5474012 发表于 2011-3-1 09:43:26

回复 2# boyhong

第一,隐藏进程?;第二?做成系统任务计划的一部分;第三,关于注册成系统服务有现成的UDF啊。关于每五分钟 ...
boyhong 发表于 2011-2-28 20:22 http://www.autoitx.com/images/common/back.gif

第二?做成系统任务计划的一部分 这是什么意思?如何做?关于第三我更希望有这方面的系统服务或第三方软件来支持,这样比au3的常住系统内存我认为来的更稳定。

ac5474012 发表于 2011-3-1 09:51:53

回复 3# pusofalse

在explorer.exe或winlogon.exe这样的常驻进程中创建一个远程线程,循环检测。这样一来第一、二就解决了。第 ...
pusofalse 发表于 2011-2-28 20:25 http://www.autoitx.com/images/common/back.gif

谢谢 不过 能问问怎么做吗?或者给一个链接?或者能给一个能在论坛搜索的关键词?

kevinch 发表于 2011-3-1 10:08:03

直接用计划任务不行吗?

ac5474012 发表于 2011-3-1 11:04:08

回复 6# kevinch

直接用计划任务不行吗?
kevinch 发表于 2011-3-1 10:08 http://www.autoitx.com/images/common/back.gif

计划任务不能没5分钟就调用一次

m765555 发表于 2011-3-1 12:08:03

P版的“在explorer.exe或winlogon.exe这样的常驻进程中创建一个远程线程,循环检测”,本人不会,可以指点一二吗,大家学习一下

kevinch 发表于 2011-3-1 12:54:32

回复kevinch



计划任务不能没5分钟就调用一次
ac5474012 发表于 2011-3-1 11:04 http://www.autoitx.com/images/common/back.gif
应该是可以滴,我以前用计划任务做过闹钟,记得可以每多少分执行一次的,研究一下吧!

nxbigdaddy 发表于 2011-3-1 13:03:18

学习了,谢谢楼主分享!

ac5474012 发表于 2011-3-1 13:59:41

回复 9# kevinch

应该是可以滴,我以前用计划任务做过闹钟,记得可以每多少分执行一次的,研究一下吧!
kevinch 发表于 2011-3-1 12:54 http://www.autoitx.com/images/common/back.gif

多谢指教这就试试去

ac5474012 发表于 2011-3-1 16:41:33

本帖最后由 ac5474012 于 2011-3-1 17:44 编辑

现在解决了每五分钟运行一次的问题,使用楼上的批处理设置就好了。

kevinch 发表于 2011-3-2 18:51:39

第一个问题不是依然可以用计划任务来实现吗,每五分钟能运行一次了,不如就每五分钟调用一次,程序运行时先判断是否已经有同一个程序在运行了,没有就运行,有就退出。

wsfda 发表于 2011-3-3 11:18:51

回复 3# pusofalse


    希望老大给个类子,学习学习,谢谢了

easied 发表于 2011-3-3 12:04:28

第一个问题,可以使用第三方程序对自己的进程进行保护.以前我在网吧维护的时候使用过两款这类软件:
1.左轮进程保护,似乎左轮的新版本加入了很多功能,感觉太花俏,推荐最早的版本.
2.一个名为Explorer.exe的进程保护程序.

但自己写程序,还是P版的方法比较好.期待API函数CreateThread的详解.
页: [1] 2 3
查看完整版本: [已解决]如何让一个程序每5分钟运行一次?