send_key(key, is_key=false, ctrl=false, alt=false, shift=false); - данная функция используется для эмуляции на уровне событий ввода заданной клавиши с клавиатуры. Может работать даже если программа находится в свернутом состоянии и в трее.
Функция на вход принимает параметры:
key – клавиша, ввод которой будет эмулирован. (string) С версии 4.9.17 добавлены аббревиатуры VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT,VK_HOME,VK_END,VK_PAGEUP,VK_PAGEDOWN,VK_TAB,VK_ENTER,VK_SPACE,VK_ESC для эмуляции управляющих клавиш
is_key – при false, интерпретирует параметр key как код клавиши а не саму клавишу.
ctrl – сочетать ли клавишу с Ctrl. (доступен с версии 4.9.17)
alt – сочетать ли клавишу с Alt. (доступен с версии 4.9.17)
shift – сочетать ли клавишу с Shift. (доступен с версии 4.9.17)
Если во время работы этой функции нажать Ctrl (или эмулировать нажатие через команды set_ctrl_prefix) то посланная клавиша будет интерпретироваться как набор горячих клавиш для rBotа.
После отработки функция возвращает результат своей работы в робот :
true – успешно эмулировали ввод заданной клавиши(boolean) false – операция не произведена (boolean)
Пример использования send_key (Python):
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7010" from xweb_human_emulator import * # начало echo("<hr><font color=blue>keyboard.xxxxxxxxx</font><hr>") # 1 echo("1. Перейдем на полигон : ") echo(browser.navigate("http://www.rbot.biz-apps.ru/poligon/listbox.html"),"<br>") # 2 echo("2. Зададим фокус на 4 листбокс и пошлем клавишу пробела: ") echo(listbox.set_focus_by_number(4)," ") echo(keyboard.send_key(VK_SPACE),"\n") sleep(2) # 3 echo("3. Пошлем клавишу вниз : ") echo(keyboard.send_key(VK_DOWN),"\n") sleep(2) # 4 echo("4. Пошлем клавишу вниз : ") echo(keyboard.send_key(VK_DOWN),"\n") sleep(2) # 5 echo("5. Пошлем клавишу вверх : ") echo(keyboard.send_key(VK_UP),"\n") sleep(2) # 6 echo("6. Пошлем клавишу page down : ") echo(keyboard.send_key(VK_PAGEDOWN),"\n") sleep(2) # 7 echo("7. Пошлем клавишу page up : ") echo(keyboard.send_key(VK_PAGEUP),"\n") sleep(2) # 8 echo("8. Пошлем клавишу end : ") echo(keyboard.send_key(VK_END),"\n") sleep(2) # 9 echo("9. Пошлем клавишу home : ") echo(keyboard.send_key(VK_HOME),"\n") sleep(2) # 10 echo("10. Пошлем клавишу tab : ") echo(keyboard.send_key(VK_TAB),"\n") # конец echo("<hr><br>") echo("##################################<br><br>") # 1 echo("1. Перейдем на яндекс : ") echo(browser.navigate("http://ya.ru"),"<br>") # 2 echo("2. Зададим фокус на строку поиска : ") echo(input.set_focus_by_number(0),"<br>") # 3 echo("3. Введем заданный текст : ") echo(keyboard.send_input("teststring"),"<br>") sleep(2) # выделим то что скопровали input.get_by_number(0).send_mouse_click(10,10) input.get_by_number(0).send_mouse_double_click(10,10) # 4 echo("4. Вырежем выделенный текст в буффер : ") echo(keyboard.send_key("88",true,true),"<br>") # 5 echo("5. Получим текст в буффере обмена : ") echo(clipboard.get_text(),"<br>") # конец echo("<hr><br>") echo("##################################<br><br>") # 1 echo("1. Перейдем на полигон : ") echo(browser.navigate("http://www.rbot.biz-apps.ru/poligon/anchor.html"),"<br>") # 2 echo("2. Получим коордианты элемента который можно выделить по двойному щелчку : ") x=element.get_x_by_inner_text("Ссылки во Frame",false) y=element.get_y_by_inner_text("Ссылки во Frame",false) echo(x," x ") echo(y,"<br>") # 3 echo("3. Выделим элемент : ") echo(mouse.send_click(x,y)," ") echo(mouse.send_double_click(x,y),"<br>") # 4 echo("4. Скопируем выделенный текст Ctrl+Insert (45) : ") echo(keyboard.send_key("45",true,true),"\n") # 5 echo("5. Получим скопированный текст : ") echo(clipboard.get_text()) # конец echo("<hr><br>") echo("##################################<br><br>") # 1 echo("1. Закинем текст в буффер : ") echo(clipboard.put_text("seo"),"<br>") # 2 echo("2. Перейдем на яндекс : ") echo(browser.navigate("http://ya.ru"),"<br>") # 3 echo("3. Зададим фокус на строку поиска : ") echo(input.set_focus_by_number(0),"<br>") # 4 echo("4. Вставим текст с буффера : Ctrl + v (86) : ") echo(keyboard.send_key("v",true,true),"<br>") # конец echo("<hr><br>") # Quit app.quit()
Пример использования send_key (JS):
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>keyboard.send_key</font><hr>"); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("http://www.rbot.biz-apps.ru/poligon/listbox.html")+"<br>"); // 2 шаг echo("2. Зададим фокус на 4 листбокс и пошлем клавишу пробела: "); echo(listbox.set_focus_by_number(4)+" "); echo(keyboard.send_key(VK_SPACE)+"\n"); browser.sleep(2); // 3 шаг echo("3. Пошлем клавишу вниз : "); echo(keyboard.send_key(VK_DOWN)+"\n"); browser.sleep(2); // 4 шаг echo("4. Пошлем клавишу вниз : "); echo(keyboard.send_key(VK_DOWN)+"\n"); browser.sleep(2); // 5 шаг echo("5. Пошлем клавишу вверх : "); echo(keyboard.send_key(VK_UP)+"\n"); browser.sleep(2); // 6 шаг echo("6. Пошлем клавишу page down : "); echo(keyboard.send_key(VK_PAGEDOWN)+"\n"); browser.sleep(2); // 7 шаг echo("7. Пошлем клавишу page up : "); echo(keyboard.send_key(VK_PAGEUP)+"\n"); browser.sleep(2); // 8 шаг echo("8. Пошлем клавишу end : "); echo(keyboard.send_key(VK_END)+"\n"); browser.sleep(2); // 9 шаг echo("9. Пошлем клавишу home : "); echo(keyboard.send_key(VK_HOME)+"\n"); browser.sleep(2); // 10 шаг echo("10. Пошлем клавишу tab : "); echo(keyboard.send_key(VK_TAB)+"\n"); // конец echo("<hr><br>"); echo("////////////////////////////////////////////////////////////////////<br><br>"); // 1 шаг echo("1. Перейдем на яндекс : "); echo(browser.navigate("http://ya.ru")+"<br>"); // 2 шаг echo("2. Зададим фокус на строку поиска : "); echo(input.set_focus_by_number(0)+"<br>"); // 3 шаг echo("3. Введем заданный текст : "); echo(keyboard.send_input("teststring")+"<br>"); browser.sleep(2); // выделим то что скопровали input.get_by_number(0).send_mouse_click(10,10); input.get_by_number(0).send_mouse_double_click(10,10); // 4 шаг echo("4. Вырежем выделенный текст в буффер : "); echo(keyboard.send_key("88",true,true)+"<br>"); // 5 шаг echo("5. Получим текст в буффере обмена : "); echo(clipboard.get_text()+"<br>"); // конец echo("<hr><br>"); echo("////////////////////////////////////////////////////////////////////<br><br>"); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("http://www.rbot.biz-apps.ru/poligon/anchor.html")+"<br>"); // 2 шаг echo("2. Получим коордианты элемента который можно выделить по двойному щелчку : "); x=element.get_x_by_inner_text("Ссылки во Frame",false); y=element.get_y_by_inner_text("Ссылки во Frame",false); echo("x="+x+" y="+y+"<br>"); // 3 шаг echo("3. Выделим элемент : "); echo(mouse.send_click(21,384)+" "); echo(mouse.send_double_click(21,384)+"<br>"); // 4 шаг echo("5. Скопируем выделенный текст : "); echo(keyboard.send_key("67",true,true)+"\n"); // 5 шаг echo("5. Получим скопированный текст : "); echo(clipboard.get_text(true)); // конец echo("<hr><br>"); echo("////////////////////////////////////////////////////////////////////<br><br>"); // 1 шаг echo("1. Закинем текст в буффер : "); echo(clipboard.put_text("seo")+"<br>"); // 2 шаг echo("2. Перейдем на яндекс : "); echo(browser.navigate("http://ya.ru")+"<br>"); // 3 шаг echo("3. Зададим фокус на строку поиска : "); echo(input.set_focus_by_number(0)+"<br>"); // 4 шаг echo("4. Вставим текст с буффера : "); echo(keyboard.send_key("86",true,true)+"<br>"); // конец echo("<hr><br>"); // Quit app.quit();