System / keyboard
send_key
send_key($key,$is_key=false,$ctrl=false,$alt=false,$shift=false); - данная функция используется для эмуляции на уровне событий ввода заданной клавиши с клавиатуры. Может работать даже если программа находится в свернутом состоянии и в трее.Функция на вход принимает параметры:
Если во время работы этой функции нажать Ctrl (или эмулировать нажатие через комманды set_ctrl_prefix) то посланная клавиша будет интерпритироваться как набор горячих клавиш для хумана.
После отработки функция возвращает результат своей работы в скрипт :
Пример использования (PHP):
===============================================================
<?php $xhe_host = "127.0.0.1:7013"; $PHP_Use_Trought_Shell=false; // подключим объект для управления эмулятором, если еще не подключен if (!isset($path)) $path="../../../Templates/xweb_human_emulator.php"; require($path); // начало echo "<hr><font color=blue>keyboard->".basename (__FILE__)."</font><hr>"; // 1 echo "1. Перейдем на полигон : "; echo $browser->navigate("http://www.humanemulator.net/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",false,true)."<br>"; // 5 echo "5. Получим текст в буффере обмена : "; echo $clipboard->get_text()."<br>"; // конец echo "<hr><br>"; echo("////////////////////////////////////////////////////////////////////<br><br>"); // 1 echo "1. Перейдем на полигон : "; echo $browser->navigate("http://www.humanemulator.net/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."<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",false,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. Вставим текст с буффера : Ctrl + v (86) : "; echo $keyboard->send_key("86",false,true)."<br>"; // конец echo "<hr><br>"; // Quit $app->quit(); ?>
Пример использования (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.humanemulator.net/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.humanemulator.net/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()
Пример использования (C#):
===============================================================
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server="127.0.0.1:7010"; InitXHE(); // начало echo("<hr><font color=blue>keyboard.send_key</font><hr>"); // 1 шаг echo("1. Перейдем на яндекс : "); echo(browser.navigate("http://ya.ru")+"<br>"); // 2 шаг echo("2. Зададим фокус на строку поиска : "); echo(input.set_focus_by_number(0)+"<br>"); // 3 шаг echo("3. Сделаем поиск SR (код 83+92+13) : "); keyboard.set_current_language("en"); echo(keyboard.send_key("83")+" "); echo(keyboard.send_key("82")+" "); echo(keyboard.send_key("13",true)); // конец echo("<hr><br>"); app.quit(); } }
Пример использования (JS):
===============================================================
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/xweb_human_emulator.js"); // начало echo("<hr><font color=blue>keyboard.send_key</font><hr>"); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("http://www.humanemulator.net/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.humanemulator.net/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();
=============================================
Keyboard Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.