1

Тема: AHK: Проблема с заглавными буквами в переменных

Всем привет, сегодня столкнулся с проблемой что заглавные буквы в переменных могут читаться и как маленькие. Вот простой пример:

Password = jooss
UserPassword = JooSS
If Password contains %UserPassword%
{
goto, script
}
else
{
MsgBox,16,Ошибка,Пароль неверен!
ExitApp
}
script:
MsgBox,Скрипт запущен
ruturn

Он считает что пароль введён верно потому-что не учитывает заглавные буквы. Как это исправить?

2

Re: AHK: Проблема с заглавными буквами в переменных

Можно добавить чувствительность к регистру строк, "StringCaseSense". Можно строку записать через Password := "jooss" и сравнивать оператором "==".

GD

3

Re: AHK: Проблема с заглавными буквами в переменных

Во второй строчке попробуйте вместо "равно" поставить знак "точно равно".
==
Оригинал статьи в AutoHotkey.chm: "Variables and Expressions", в содержании - "Variables and Expressions".

4

Re: AHK: Проблема с заглавными буквами в переменных

ypppu
В приведённом мною примере это работает, но что делать в таком случае?
Скрипт:

#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
Menu:
try Gui Add, Edit, x16 y8 w210 h21 vKeyEntered, %KeyEntered%
Gui Add, Button, gSearch x48 y40 w141 h23, Узнать значение
Gui Show, w237 h65, Window
Return

Search:
Gui, Submit
iniread, Count, setting.ini, player, %KeyEntered%
msgbox,В параметре %KeyEntered% установленно значение %Count%
goto, Menu
return

setting.ini

[player]
JooSS =1

5

Re: AHK: Проблема с заглавными буквами в переменных

А в чём вопрос-то?

6

Re: AHK: Проблема с заглавными буквами в переменных

ypppu
Он находит такой раздел даже если всё прописано с маленькой буквы, а мне это не нужно.

7

Re: AHK: Проблема с заглавными буквами в переменных

Ну да, это работает с операндами в выражениях, но не в команде IniRead.

8

Re: AHK: Проблема с заглавными буквами в переменных

ypppu
Понял, спасибо

9

Re: AHK: Проблема с заглавными буквами в переменных

Можно так:

Gui Add, Edit, x16 y8 w210 h21 vKeyEntered, %KeyEntered%
Gui Add, Button, gSearch x48 y40 w141 h23, Узнать значение
Menu:
Gui Show, w237 h65, Window
Return

Search:
Gui, Submit
iniread, section, setting.ini, player
RegExMatch(section, KeyEntered . "=\K.*", Count)
MsgBox, В параметре %KeyEntered% установленно значение %Count%
goto, Menu
return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Проблема с заглавными буквами в переменных

А лучше так:

Gui Add, Edit, x16 y8 w210 h21 vKeyEntered, %KeyEntered%
Gui Add, Button, gSearch x48 y40 w141 h23, Узнать значение
Menu:
Gui Show, w237 h65, Window
Return

Search:
Gui, Submit
iniread, section, setting.ini, player
RegExMatch(section, "m`a)^" . KeyEntered . "=\K\V*", Count)
MsgBox, В параметре %KeyEntered% установленно значение %Count%
goto, Menu
return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Проблема с заглавными буквами в переменных

teadrinker
Не работает.

12

Re: AHK: Проблема с заглавными буквами в переменных

У меня работает с таким ini:

[player]
JooSS =1
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Проблема с заглавными буквами в переменных

Так как формат ini весьма убогий, то я бы не советовал получать данные такого ini через iniread, section.
А получать через fileread, после чего регуляркой отсекать нужный блок и создавать массив со всеми значениями key=value.