steven2016 发表于 2016-11-28 15:10:33

如何在定时关闭程序

最近刚刚接触au3,需要定时关闭某个程序,但是一直没有成功。
还请大神指导下,程序错在哪里,源码如下:

if @HOUR >= 16 and @MIN >= 30 and ProcessExists ("EzOES_ASHR.exe") Then
                ;关闭A 股集中报盘程序
          $SJSA = WinActivate("上交所新一代交易系统 A 股集中报盘程序")
         if $SJSA<>0 Then
                        if WinActivate($SJSA)<> 0 Then
               WinSetState("上交所新一代交易系统 A 股集中报盘程序" , "" , @SW_SHOW)
               ;显示窗口上交所新一代交易系统 A 股集中报盘程序
             FileWriteLine ($file, @HOUR & @MIN & @SEC & " " & "准备关闭A 股集中报盘程序" )
               Send ("!o")
               Send ("a")
               Sleep (500)
               Send ("!o")
               Send ("t")
               Sleep (500)
               WinWaitActive ("停止确认","",2)
               Send ("!y")
               Sleep (500)
               Send ("!o")
               Send ("q")
               WinWaitActive ("确认","",2)
               Sleep (500)
             Send ("!y")
               if not ProcessExists("EzOES_ASHR.exe") Then
                        FileWriteLine ($file, @HOUR & @MIN & @SEC & " " & "A 股集中报盘程序已关闭" )
               EndIf
               EndIf
      EndIf
          EndIf

steven2016 发表于 2016-11-28 15:12:44

这里补充下,只有我电脑远程到这台服务器上,然后这段代码才能正常执行。如果我当时没有远程的话,代码就不会执行。
相当于这个winactivate并未起作用。
个人感觉这个winactivate作用就和winwaitactive类似了

q410225 发表于 2016-11-29 21:03:41

要加循环语句,不然程序只会启动的时候判断一次,有点费劲,不如用计划任务

winactivate无效的话,是不是可以用ProcessClose,直接结束进程

steven2016 发表于 2016-11-30 08:51:57

我在后面加了processclose,是可以强杀进程的。
这里发出来,就是想知道这个winactivate怎么用。
在这行代码的前面加了while 2>1 ,可以直接循环的

q410225 发表于 2016-11-30 23:19:27

回复 4# steven2016


      FileWriteLine ($file, @HOUR & @MIN & @SEC & " " & "准备关闭A 股集中报盘程序" )
               Send ("!o")
               Send ("a")
               Sleep (500)
               Send ("!o")
               Send ("t")
               Sleep (500)
               WinWaitActive ("停止确认","",2)
               Send ("!y")
               Sleep (500)
               Send ("!o")
                Send ("q")
               WinWaitActive ("确认","",2)
               Sleep (500)
             Send ("!y")

应该加{}

jingzhinvr 发表于 2016-12-2 09:47:22

学习学习,天天向上

steven2016 发表于 2016-12-6 12:15:39

回复 5# q410225


    不需要加的。
你看我说的,如果我自己在的时候,我执行这个脚本,是可行的。
如果我不在,没法自动,需要激活。
页: [1]
查看完整版本: 如何在定时关闭程序