【问题标题】:simple autohotkey can't seem to read ini file简单的自动热键似乎无法读取 ini 文件
【发布时间】:2017-11-25 06:25:21
【问题描述】:

我正在尝试读取 ini 文件,但它似乎无法读取 ini 文件,即使我只打开或关闭第一个语句运行,知道为什么吗?我是autohotkey的新手,希望你能帮助我,谢谢

home::
Loop

    {
     test() 
     sleep, 1500 
    }


test() {
IniRead, value, skillmode.ini, skillmode, toggle

if(%value% = on) {
 send, {f9}      
 msgbox, now its on!
 return

}    
else if(%value% = off) {    
     send, {f5} 
     msgbox, now its off!
     return
    }
else {
msgbox, nothing happened
return
}
}

在我的技能模式.ini 文件中

[skillmode]
toggle=off

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    在您的代码中:

    1 - 您不能在 if 语句中使用 - 示例 - if(%value% = off) 和 if(%value% = on) 它必须是 if(value = "off") 和 if(value = “开”)

    2 - 你在底部缺少一个额外的 Return 命令,你需要它,用于 home::

    你可以试试这个 AHK 代码,我确实在我的 Windows 10 系统上进行了测试,它可以工作。

    你可以用 f4 键测试一下。

    这个简单的自动热键脚本将从 .ini 文件中读取一个值。

    test.ahk

    ; [+ = Shift] [! = Alt] [^ = Ctrl] [# = Win (Windows logo key)]
    f4::
    
    Loop
    {
    gosub test 
    sleep 1500 
    }
    
    
    test: 
    IniRead, value, skillmode.ini, skillmode, toggle
    
    if (value = "on") 
    {
    send {f9}      
    msgbox now its on! %value%
    return
    }
    
    if (value = "off") 
    {    
    send {f5} 
    msgbox now its off! %value%
    return
    }
    
    msgbox nothing happened %value%
    return
    
    return
    

    skillmode.ini 文件为:

    [skillmode]
    toggle = off
    

    【讨论】:

      【解决方案2】:

      试试:

      home::
          Loop {
              test()
              sleep, 1500 
          }
      return ; Missing a Return
      
      test() {
          iniFile := A_scriptDir "\skillmode.ini" ; Full Directory Path A_ScriptDir
          IniRead, value, %iniFile%, skillmode, toggle
          ; value not %value% , == instead of = , Quotes around Strings 
          if (value == "on") { 
              send, {f9}      
              msgbox, now its on!
              return
          } else if ( value == "off") {    
              send, {f5} 
              msgbox, now its off!
              return
          }
      
          msgbox, nothing happened
          return
      }
      

      请注意您的 .ini 文件。我发现我的文件是使用编码 UTF-8 保存的,这导致 IniRead 出现问题,但当我将其编码更改为 ANSI 时已修复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-27
        • 2012-01-26
        • 1970-01-01
        • 2021-02-14
        • 1970-01-01
        • 2017-01-09
        • 2017-04-10
        • 1970-01-01
        相关资源
        最近更新 更多