找回密码
 加入
搜索
查看: 2935|回复: 6

[AU3基础] 如何在定时关闭程序

  [复制链接]
发表于 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
 楼主| 发表于 2016-11-28 15:12:44 | 显示全部楼层
这里补充下,只有我电脑远程到这台服务器上,然后这段代码才能正常执行。如果我当时没有远程的话,代码就不会执行。
相当于这个winactivate并未起作用。
个人感觉这个winactivate作用就和winwaitactive类似了
发表于 2016-11-29 21:03:41 | 显示全部楼层
要加循环语句,不然程序只会启动的时候判断一次,有点费劲,不如用计划任务

winactivate无效的话,是不是可以用ProcessClose,直接结束进程
 楼主| 发表于 2016-11-30 08:51:57 | 显示全部楼层
我在后面加了processclose,是可以强杀进程的。
这里发出来,就是想知道这个winactivate怎么用。
在这行代码的前面加了while 2>1 ,可以直接循环的
发表于 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")

应该加{}
发表于 2016-12-2 09:47:22 | 显示全部楼层
学习学习,天天向上
 楼主| 发表于 2016-12-6 12:15:39 | 显示全部楼层
回复 5# q410225


    不需要加的。
你看我说的,如果我自己在的时候,我执行这个脚本,是可行的。
如果我不在,没法自动,需要激活。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-5 21:37 , Processed in 0.082977 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表