hao1233 发表于 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

哪位老大帮看一下哪里出问题

zch11230 发表于 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

user3000 发表于 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

hao1233 发表于 2013-7-19 20:05:18

本帖最后由 hao1233 于 2013-7-19 20:24 编辑

二楼和三楼的代码都可以解决问题
谢谢了
感谢三楼的详细讲解
页: [1]
查看完整版本: 谁帮看一下哪里出错了运行无效果 问题已解决