Author Topic: Самопроизвольное залипание клавиши Shift  (Read 4199 times)

0 Members and 1 Guest are viewing this topic.

zxc17

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
День добрый!

Есть скрипт, который вводит данные на веб-странице. Привязка к окну НЕ используется, работает только скрипт.
В некоторых случаях команды KEYPRESS(#TAB), KEYPRESS(#ESC) ведут себя так, как будто зажата клавиша Shift. Хотя в скрипте клавиша Shift вообще не используется.
Причем это "висяк", т.е. глюк, проявляющийся не всегда. Запускаю цикл на 5 повторов, работает только скрипт, первые 1-3 цикла могут пройти нормально, а на следующем вместо TAB отрабатывается Shift+TAB.
Версия программы 4.13.014 х64; ОС - Win10; браузер - Google Chrome.
Можете что-то подсказать?

Code: (clickermann) [Select]
#name "Открытие и регистрация"
#define @CR:STRCONCAT(char(13),char(10)) //замена  char(13),char(10)  на @CR для лучшей читаемости

// Указываем пароль для счетов.
// Если не доверяете программе, можно указать временные, и сменить позже.
$PSWD_acc    = "test"      //Пароль счета
$PSWD_invest = "t"  //Пароль инвестора


$mess = "Сколько счетов хотите открыть?"
$num_acc = InputBox($mess, "1", 30)
if($num_acc = "")
   goto (stop)
end_if

$mess = "Введите имя файла для записи счетов"
$FName = InputBox($mess, "accounts_list.txt", 30)
if($FName = "")
   goto (stop)
end_if

$mess = STRCONCAT("С какого номера вести нумерацию?", @CR, "После ввода не забудьте", @CR, "сделать активным браузер")
$counter=InputBox($mess, "0", 30)
if($counter = "")
   goto (stop)
end_if

BEEP(800,200)        //Ожидание, пока пользователь переключится в браузер
wait(1)              //с подачей звукового сигнала.
BEEP(800,200)
wait(1)
BEEP(800,200)
wait(1)
BEEP(1200,500)
wait(1)

FOR($a=0, $a < $num_acc)

  KEYDOWN (#CTRL)      // Ctrl+L для выбора адресной строки
  WAITMS (50)
  KEYPRESS (#L)
  KEYUP (#CTRL)

//  KEYPRESS(#F6)      // Тестировалось на Google Crome, в нём F6 - встать в адресную строку
  wait(1)
  KEYSTRING("https://my.roboforex.org/ru/trading-account/open-trading-account/")
  KEYPRESS(#ENTER)
  wait(10)            // Ожидание прогрузки страницы ПОЛНОСТЬЮ в секундах, скорректировать по скорости своего интернета.


  //Выбор типа терминала
  //Точка №1
  LCLICK(930,486)
  wait(1) 
  //Точка №2
  LCLICK(841,518)
  waitms(200) 

  //Выбор типа счета
  //Точка №3
  LCLICK(935,532)
  wait(1) 
  //Точка №4
  LCLICK(862,666)
  waitms(200) 

  //Выбор валюты счета
  //Точка №5
  LCLICK(932,574)
  wait(1) 
  //Точка №6
  LCLICK(822,641)
  waitms(200) 

  //Выбор кредитного плеча
  //Точка №7
  LCLICK(931,622)
  wait(1) 
  //Точка №8
  LCLICK(822,754)
  waitms(200)
 
  //Выбор строки ввода пароля
  //Точка №9
  LCLICK(691,663)
  KEYSTRING($PSWD_acc)
  waitms(200)
  KEYPRESS(#TAB)
  waitms(100)
  KEYSTRING($PSWD_acc)
  waitms(200)
  KEYPRESS(#TAB)
  waitms(100)
  KEYSTRING($PSWD_invest)
  waitms(200)
  KEYPRESS(#TAB)
  waitms(100)
  KEYSTRING("nov")
  waitms(200)
  KEYPRESS(#TAB)
  waitms(100)
  //Кнопка "Подтвердить".
  //Точка №10

//остаток скрипта удален на время тестирования


END_CYC


stop:
$mess = STRCONCAT("Скрипт ", char(34), "Открытие счетов", char(34), " завершён")
$mr = DIALOGBOX ($mess, 0, 4)
HALT


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
@CR — а такое уже есть в Кликерманне? А кавычка и табуляция как пишутся?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
@CR — а такое уже есть в Кликерманне? А кавычка и табуляция как пишутся?
Нет. Так #define давно же есть
Code: (clickermann) [Select]
#define @CRLF: STRCONCAT(CHAR(13),CHAR(10))
#define \n: STRCONCAT(CHAR(13),CHAR(10))

#define @TAB: CHAR(9)
#define @quotes: CHAR(34)


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Так #define давно же есть

Хаха, да! Точно, спасибо, вот ведь как, в простоте всегда кроются свои смыслы, под час не видимые. Помню, как-то даже думал сделать дефайны под все команды ReMouse/GhostMouse, чтоб беспроблемно старые файлы с рекордера конвертировать в кликерманновские, и возможно даже делал это, уже и не помню. Хотя Ремаус то всё же вчерашний день. Но точно так же и в рекордере с быстрым прототипированием кроется своя мнимая простота, которую ещё предстоит перепродумать. Да и char() уже несколько лет, как появился, там вот парная функция не сразу возникла. Смутно помнится, я даж на КЛМНе отображение таблицы Юникода лабал, как только функция появилась.