Что нового

[Данные, строки] Фукнция ControlSend работает некорректно

scanfail

Знающий
Сообщения
244
Репутация
17
Здравствуйте. Хотел узнать, почему следующий код не работает?
Код:
Func AttackAndSkill()
	$SimpleAttack = GUICtrlRead($SimpleAttackCombo)

If  $Target = 0 Then
	ControlSend($WindowName, "", "", "{TAB}")
	ControlSend($WindowName, "", "", "{" & $SimpleAttack & "}")
EndIf
EndFunc


Дело в том, что если отправить
Код:
Func AttackAndSkill()
If  $Target = 0 Then СontrolSend($WindowName, "", "", "{ENTER}" & "HI!")
EndFunc


То все работает нормально, сообщение идет.

Просто
Код:
If  $Target = 0 Then
	WinActivate($WindowName)
	Send("{TAB}")
	EndIf

Тоже работает.
 
A

Alofa

Гость
Приведите примеры значений "$SimpleAttack"?
И посмотрите подборку Похожие темы, внизу этой страницы.
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
Вот
 

Вложения

  • 1.png
    1.png
    5.8 КБ · Просмотры: 17
A

Alofa

Гость
Код:
ControlSend($WindowName, "", "", "{TAB}" & $SimpleAttack)


Или "$SimpleAttack" определяет количество нажатий TAB?
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
Alofa сказал(а):
Код:
ControlSend($WindowName, "", "", "{TAB}" & $SimpleAttack)


Или "$SimpleAttack" определяет количество нажатий TAB?

Нет, сначала отправляется TAB(во многих ММО играх это выделение цели), а далее уже отправляется хоткей, на которой выставлена обычная атака(не скилл).
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
scanfail
Код:
ControlSend($WindowName, "", "", "{" & $SimpleAttack & "}")

что это? Мне кажется, что тут явная ошибка с ковычками.
Если на $SimpleAttack у Вас завязана цифровая клавиша быстрой атаки то должно быть так:
Код:
ControlSend($WindowName, "", "", $SimpleAttack)


Почитайте еще http://autoit-script.ru/autoit3_docs/functions/Send.htm
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
mr.Gbabak сказал(а):
scanfail
Код:
ControlSend($WindowName, "", "", "{" & $SimpleAttack & "}")

что это? Мне кажется, что тут явная ошибка с ковычками.
Если на $SimpleAttack у Вас завязана цифровая клавиша быстрой атаки то должно быть так:
Код:
ControlSend($WindowName, "", "", $SimpleAttack)


Почитайте еще http://autoit-script.ru/autoit3_docs/functions/Send.htm

Код:
ControlSend($WindowTitle, "", "", "{TAB}" & 1)

И вы думаете, что такой вариант корректен и работоспособен?
 
A

Alofa

Гость
scanfail сказал(а):
Код:
ControlSend($WindowTitle, "", "", "{TAB}" & 1)

И вы думаете, что такой вариант корректен и работоспособен?
Ну если так рассуждать, тогда ваш вариант выглядит так: ;D
Код:
ControlSend($WindowName, "", "", "{" & 1 & "}")


Если не уверенны в том, как будет выглядеть значение переменной, то попробуйте его подсмотреть, к примеру так:
Код:
MsgBox(4096, '', "{TAB}" & $SimpleAttack)
ControlSend($WindowName, "", "", "{TAB}" & $SimpleAttack)
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
Alofa сказал(а):
scanfail сказал(а):
Код:
ControlSend($WindowTitle, "", "", "{TAB}" & 1)

И вы думаете, что такой вариант корректен и работоспособен?
Ну если так рассуждать, тогда ваш вариант выглядит так: ;D
Код:
ControlSend($WindowName, "", "", "{" & 1 & "}")


Если не уверенны в том, как будет выглядеть значение переменной, то попробуйте его подсмотреть, к примеру так:
Код:
MsgBox(4096, '', "{TAB}" & $SimpleAttack)
ControlSend($WindowName, "", "", "{TAB}" & $SimpleAttack)

Давайте подумаем логически. Если работает
Код:
ControlSend($WindowTitle, "", "{ENTER}")

То и с работой
Код:
ControlSend($WindowTitle, "", "{TAB}")

Проблем быть не должно, разве нет? Но отправка TAB-а почему-то не работает.


Добавлено:
Сообщение автоматически объединено:

Кстати, очень странно. Проверил сегодня еще кое-что. При активном окне и
Код:
Send("{TAB}")

скрипт работает. Только вот появилась еще одна проблемка, не работает
Код:
Send("{W}") ;W, A, S и D

хотя при этом, работают стрелки. Это типа такая защита, или что? Ведь если просто сделать
Код:
Send("{Enter}" & "WASD")

то все работает. Можно это как-то обойти?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Код:
send("{w DOWN"})



Добавлено:
Сообщение автоматически объединено:

Код:
send("{w DOWN"})
 
Верх