xymc 发表于 2015-7-29 23:10:00

变量不生效,请教下大家哪里错了(已解决)

本帖最后由 xymc 于 2015-8-16 21:34 编辑

发现Config.ini里面的关键词就关闭该关键字的窗口
第二行关键词读不到

Local $var = IniRead("Config.ini", "关键字", "关闭", "NotFound")
WinWaitActive($var, "")
sleep(1000)
WinKill($var, "")

Config.ini内容如下
[关键字]
关闭=色情
关闭=黄色

haijie1223 发表于 2015-7-29 23:29:16

把变量$var两边的"去掉试试

xymc 发表于 2015-7-31 19:28:01

本帖最后由 xymc 于 2015-7-31 19:29 编辑

回复 2# haijie1223

第一行是可以关闭,Config.ini里面的第二行关键字就不生效了
IniRead好像只能读到第一行
第2行的内容读不到

rchockxm 发表于 2015-8-1 08:21:05

本帖最后由 rchockxm 于 2015-8-1 08:24 编辑


    Local Const $sFilePath = "Config.ini"
    Local $aArray = IniReadSection($sFilePath, "关键字")

    If Not @error Then
      For $i = 1 To $aArray
            If $aArray[$i] <> "关闭" Then ContinueLoop

            WinWaitActive($var, "")
            sleep(1000)
            WinKill($aArray[$i], "")
      Next
    EndIf

luren666 发表于 2015-8-4 18:55:46

把前面的“关闭”改成1,2,3这样的序号,前面都起一样的名字,肯定只能读到一个。不过还是建议直接用文本文件,一行写一个,然后用_FileReadToArray读入数组,循环就可以了。

luren666 发表于 2015-8-4 19:33:30

本帖最后由 luren666 于 2015-8-4 19:35 编辑

#NoTrayIcon
#include <Array.au3>
Opt("WinTitleMatchMode",2)
$title = "东方网络专用工具 V1.0.0.1"
If WinExists($title) Then Exit
AutoItWinSetTitle($title)
If $cmdline > 0 Then
        $file = $cmdline
Else
        $file = @ScriptDir & "\winlist.dat"
EndIf
$hFile = FileOpen($file, 0)
If $hFile = -1 Then Exit
$aArray = StringSplit(StringStripCR(FileRead($hFile, FileGetSize($file))), @LF)
FileClose($hFile)
If $aArray <>$title Then Exit
Dim $NewArray[$aArray + 1]
$y = 1
For $x = 2 to $aArray
        IfStringStripWS($aArray[$x],3) = "" Then
                ContinueLoop
        Else
                $NewArray[$y] = $aArray[$x]
                $y = $y + 1
        EndIf
Next
Dim $aArray
ReDim $NewArray[$y]
$NewArray = UBound($NewArray) - 1
While 1
        For $x = 0 to $NewArray
                If WinExists($NewArray[$x]) Then WinClose($NewArray[$x])
        Next
        sleep(500)
WEnd
把07年做网吧网管的时候写的脚本扒出来了,忘记了那时候是不会用_FileReadToArray还是压根就没有_FileReadToArray这些UDF,现在可以直接在_FileReadToArray读完之后,用_ArrayDelete删除掉无用的空行。

说明:请勿删改第一行,否则程序无法运行.

如果一行中只有空格,那么这一行将被忽略,
但如果这一行还有其它字符,则空格会被认为是有效的匹配条件.

可以用参数方式调用,
例:
程序syssafe.exe放在c:\,配置文件放在\\server\safe\winlist.dat,则调用方法为
c:\syssafe.exe \\server\safe\winlist.dat

假如参数路径带空格,如\\server\sys safe\list.txt,则需要用引号将参数引起来,如:
c:\syssafe.exe "\\server\sys safe\list.txt"

如果指定的参数不是一个有效的配置文件,则程序退出。

如果不指定参数则程序默认会在自身目录寻找winlist.dat,如果找不到或格式不正确,程序退出。
配置文件winlist.dat东方网络专用工具 V1.0.0.1
你好
谢谢
再见

   
你好
谢谢

你 好

xymc 发表于 2015-8-16 22:06:48

回复 4# rchockxm


你这个运行不了
页: [1]
查看完整版本: 变量不生效,请教下大家哪里错了(已解决)