Вопросы по AHK-скриптингу

PidarasHueglot

Новичок
11
0
Синтаксис функций.
а для чего они. Вот например мне надо открыть /mn 18
send, {f6}/mn 18{enter} и выбрать третью строку в этом окошке. Но иногда оно открывается долго.
//строка с ожидаем (подскажи ее позязя)
sendinput, {down}
sendinput, {down} эти две строки передвигают область на 3 строку.
 

Akiyama

Новичок
1
0
Всем привет.Может быть кто подскажет как записать выбранный файл с помощью функции:FileSelectFile в переменную?
 

oPawka

Новичок
23
4
а для чего они. Вот например мне надо открыть /mn 18
send, {f6}/mn 18{enter} и выбрать третью строку в этом окошке. Но иногда оно открывается долго.
//строка с ожидаем (подскажи ее позязя)
sendinput, {down}
sendinput, {down} эти две строки передвигают область на 3 строку.

Код:
#include samp.ahk

:?:/mn 18::
while !isDialogOpen()
   continue
SendInput {down 2}{enter}
return
 

Overseas

Новичок
16
1
Нужно что бы скрипт обнаруживал в логе строку с двумя нужными мне словами "НИЗ" и "ВЕРХ", и после этого продолжал свое действие. При том оба слова могут находиться в разных местах строчки и с разным регистром, но обязательно что бы присутствовали оба слова а не только одно. (IfInString, logchat, НИЗ & ВЕРХ тут в коде чисто для примера, что бы понятно было что мне нужно)
Код:
~u::

if(isInChat())
Return
{
log = % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
FileRead, logchat, %log%
IfInString, logchat, НИЗ & ВЕРХ
{
 
Последнее редактирование:

#Rin

Известный
Всефорумный модератор
1,214
1,036
Нужно что бы скрипт обнаруживал в логе строку с двумя нужными мне словами "НИЗ" и "ВЕРХ", и после этого продолжал свое действие. При том оба слова могут находиться в разных местах строчки и с разным регистром, но обязательно что бы присутствовали оба слова а не только одно. (IfInString, logchat, НИЗ & ВЕРХ тут в коде чисто для примера, что бы понятно было что мне нужно)
Код:
~u::

if(isInChat())
Return
{
log = % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
FileRead, logchat, %log%
IfInString, logchat, НИЗ & ВЕРХ
{
AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
~u::
    if (isInChat())
        return
    FileRead, chatlog, %chatlog_file%
    if (InStr(chatlog, "НИЗ") && InStr(chatlog, "ВЕРХ"))
        ; Действие
return
а для чего они. Вот например мне надо открыть /mn 18
send, {f6}/mn 18{enter} и выбрать третью строку в этом окошке. Но иногда оно открывается долго.
//строка с ожидаем (подскажи ее позязя)
sendinput, {down}
sendinput, {down} эти две строки передвигают область на 3 строку.

AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

WaitForDialogOpen()
{
    while (!isDialogOpen())
        continue
}

!1::
    SendChat("/mn 18")
    WaitForDialogOpen()
    setDialogIndex(3)
    Send, {Enter}
    WaitForDialogOpen()
    SendInput, Текст
return

Всем привет.Может быть кто подскажет как записать выбранный файл с помощью функции:FileSelectFile в переменную?
FileSelectFile - Syntax & Usage | AutoHotkey(https://autohotkey.com/docs/commands/FileSelectFile.htm)
 
  • Нравится
Реакции: Overseas

PidarasHueglot

Новичок
11
0
AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
~u::
    if (isInChat())
        return
    FileRead, chatlog, %chatlog_file%
    if (InStr(chatlog, "НИЗ") && InStr(chatlog, "ВЕРХ"))
        ; Действие
return


AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

WaitForDialogOpen()
{
    while (!isDialogOpen())
        continue
}

!1::
    SendChat("/mn 18")
    WaitForDialogOpen()
    setDialogIndex(3)
    Send, {Enter}
    WaitForDialogOpen()
    SendInput, Текст
return


FileSelectFile - Syntax & Usage | AutoHotkey(https://autohotkey.com/docs/commands/FileSelectFile.htm)
сделал под себя, при запуске выдает ошибку, что нужно писать в скобках? WaitForDialogOpen()
 

Overseas

Новичок
16
1
AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
~u::
    if (isInChat())
        return
    FileRead, chatlog, %chatlog_file%
    if (InStr(chatlog, "НИЗ") && InStr(chatlog, "ВЕРХ"))
        ; Действие
return


AutoHotKey:
chatlog_file := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

WaitForDialogOpen()
{
    while (!isDialogOpen())
        continue
}

!1::
    SendChat("/mn 18")
    WaitForDialogOpen()
    setDialogIndex(3)
    Send, {Enter}
    WaitForDialogOpen()
    SendInput, Текст
return


FileSelectFile - Syntax & Usage | AutoHotkey(https://autohotkey.com/docs/commands/FileSelectFile.htm)
Большое спасибо. А как сделать что бы не было чувствительности к регистру при поиске данных слов? Например мне нужно что бы реагировал и на "вЕрх" "нИз" и на "верХ" "ниЗ". А в вашем примере он реагирует только на "ВЕРХ" "НИЗ".
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Ну так, а где в коде эта функция?
WaitForDialogOpen()
{
while (!isDialogOpen())
continue
}

Большое спасибо. А как сделать что бы не было чувствительности к регистру при поиске данных слов? Например мне нужно что бы реагировал и на "вЕрх" "нИз" и на "верХ" "ниЗ". А в вашем примере он реагирует только на "ВЕРХ" "НИЗ".
По умолчанию InStr не учитывает регистр, если не вызывали функцию StringCaseSense.
Попробуйте
AutoHotKey:
InStr(chatlog, "то что было", false)
 

PidarasHueglot

Новичок
11
0
Ну так, а где в коде эта функция?
при попытке запуска с ней выдавало ошибку, только со стрелочкой на ней. вот скрин
CQXof.png