swaterj 发表于 2011-8-4 10:05:57

[已解决] au3 提示: Subscript used with non-Array variable

本帖最后由 swaterj 于 2011-8-16 20:27 编辑

源码如下,提示说$var错误使用了非数组变量,原来使用 IniReadSection函数没出现过这种问题,不知问题出在哪里?请各位高手帮忙看下。
local $var = IniReadSection("pzhi","ProcessList")
TraySetState (2)
for $i = 6 to $prolist step 1
       $pid=$prolist[$i]
       $path=_GetModuleFileNameEx($pid)
       $size=filegetsize($path)
       for $k = 1 to $var step 1
               if $prolist[$i]=$var[$k] then
                        if $var[$k]<>"yes" Then
                       $exist=0
                          if $size<>$var[$k] Then
                               $exists=processclose($prolist[$i])
                          elseif $var[$k]="no" Then
                               $exists=processclose($prolist[$i])
                          endif
                        endif
               else
                           $exist += 1
                        if $exist=$var Then
                           $exists=processclose($prolist[$i])
                        endif
                endif
        next
next

happytc 发表于 2011-8-4 10:17:55

这个那个知道,帖的不是可运行的脚本,配置文件也没有。

只能帮你说一句了,凡是返回是数组的函数,在用这个数组前,最好先判断:if isarray($aRet)

netegg 发表于 2011-8-4 13:43:57

ProcessList下面有内容没有

daiyu116 发表于 2011-8-4 13:50:55

问题是不是出在这一句?local $var = IniReadSection("pzhi","ProcessList")
pzhi是不是一个ini文件?是不是放在了脚本下面?
建议写清楚:譬如用相对路径 local $var = IniReadSection(".\pzhi.ini","ProcessList")

swaterj 发表于 2011-8-5 09:15:27

谢谢各位的回复,是配置文件出了些问题。这是一个进程监视程序的部分代码,pzhi 是配置文件。程序的作用是,若发现进程列表中有配置文件中不存在的进程时便结束它。
页: [1]
查看完整版本: [已解决] au3 提示: Subscript used with non-Array variable