一个程序同时打开三个, 同时执行定时器 的命令,会如何?

如果编写 一个木马, 为防止不能开机启动,自我复制了三个相同副本 随机启动.

然后用定时器,每天指定时间 发送本机文档到我邮箱

但如何防止 三个同样的程序(不同目录 ) , 重复发送?

如果在程序中,定时器每天晚上10点时

程序 判断 C:\发送.txt 是否存在, 存在则退出

不存在, 则生成 ,C:\发送.txt , 然后 执行我要命令,如发邮件

然后,删除C:\发送.txt.

那问题是 : 三个一模一样的程序,定时器都是 定在10:00 的执行以上操作, 是哪个能抢占先机呢?

可以绑定端口,让只有一个程序在运行

我做了个程序生成三个 11.exe , 222.exe , 333.exe 来做实验(理论基础不深就实践)


Private Sub Timer1_Timer()
  Text1 = Time

 If Format(Time, "hh:mm") > "17:00" Then
 
  ' Sleep Int(501 * Rnd(1) + 100)    '前面实践已证不用加  随机延时几秒 也可以,  毕竞几个程序的启动,精确到毫秒后,不会是同时启动定时器, 如定时器不是1秒更明显
   

        If Dir("c:\001.txt") = "" Then

            On Error Resume Next              
             Open "c:\001.txt" For Output As #1            
             Print #1, "21111111111111111111111111"      '三个写的内容不同,我好知道是哪个写的
             Close #1
             Text2 = Text2 & "完成"       '做个记号,证明我的命令完成了 
         Else
     
         Text2 = Text2 & "停"    '如果生成了文件,不能进行我 的任务, 就显示一下
         End If

  End If
End Sub

原来定时器设的是1秒,当改成3秒后,就明显了,虽然同时 都是 到17:00时执行,
但由于打开程序的时间, 不可能是同个时间的,总有差别,哪怕只差毫秒,特别是如果差上几秒.

而定时器 间隔大于1秒以上,如3秒或9秒

那么到了17:00时 ,就并不是在 17:00:00 同时启动定时器,所以同一分钟内还是在不同时间打开,

也就不冲突了.