找回密码
 加入
搜索
查看: 2661|回复: 3

[系统综合] 谁帮看一下哪里出错了运行无效果 问题已解决

[复制链接]
发表于 2013-7-19 00:18:14 | 显示全部楼层 |阅读模式
本帖最后由 hao1233 于 2013-7-19 20:11 编辑

代码
#include <Process.au3>

Break(0)
TraySetState(2)
AdlibRegister("kssm", 800)
For $i = 1 To 10
        $path = IniRead("D:\tool\dvr.dat", "目录", "dvr" & $i, "notfound")
Next
While True

        Sleep(100)

WEnd



Func kssm()
       


        ProcessClose($path)


EndFunc   ;==>kssm

ini配置
[目录]
dvr1=YY.exe
dvr2=QQProtect.exe

哪位老大帮看一下哪里出问题
发表于 2013-7-19 00:34:27 | 显示全部楼层
FOR是不是应该放到FUNC里面去啊
#include <Process.au3>

Break(0)
TraySetState(2)
AdlibRegister("kssm", 800)

While True

        Sleep(100)

WEnd



Func kssm()
        

For $i = 1 To 10
        $path = IniRead("D:\tool\dvr.dat", "目录", "dvr" & $i, "notfound")

        ProcessClose($path)

Next
EndFunc   ;==>kssm
发表于 2013-7-19 00:46:22 | 显示全部楼层
回复 1# hao1233
Adlib 函数的运行时间太长, 差不多1秒(800)后才运行,
而此时代码已遍历获取完所有 $path, 最后其内容为 'not found'.
配置里 加上 dvr10 的字段就可以(也只能)关闭其对应的程序.
要想达到预期目的,应该这样吧:
#include <Process.au3>
Local $i = 1
Break(0)
TraySetState(2)
AdlibRegister("kssm", 800)
While True
   Sleep(100)
WEnd
Func kssm()
            $path = IniRead("D:\tool\dvr.dat", "目录", "dvr" & $i, "notfound")
        ProcessClose($path)
                $i += 1
                If $i > 10 Then $i = 1
EndFunc   ;==>kssm
 楼主| 发表于 2013-7-19 20:05:18 | 显示全部楼层
本帖最后由 hao1233 于 2013-7-19 20:24 编辑

二楼和三楼的代码都可以解决问题
谢谢了
感谢三楼的详细讲解
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 01:17 , Processed in 0.097444 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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