send_key_up
send_key_up($key,$is_key=false); - данная функция используется для эмуляции на уровне событий отжатие заданной клавиши с клавиатуры. Может работать даже если программа находится в свернутом состоянии и в трее.Функция на вход принимает параметры:
Если во время работы этой функции нажать Ctrl (или эмулировать нажатие через комманды set_ctrl_prefix) то посланная клавиша будет интерпритироваться как набор горячих клавиш для хумана.
После отработки функция возвращает результат своей работы в скрипт :
<?php // Scenario: Demonstrates how to send key up events for various keys including navigation and special keys $xhe_host = "localhost:7010"; // Connect functional objects if not already connected if (!isset($path)){ $path="../../../Templates/init.php"; require($path); } // info echo "\n<span >keyboard->" . basename (__FILE__) . "</span>\n"; // Example 1: Navigate to test page with listbox echo "\n\n"; // Set variables for navigation to test page $testUrl = TEST_POLYGON_URL . "listbox.html"; // Navigate to the test page echo "Navigate to test page with listbox: "; $result = WEB::$browser->navigate($testUrl); if ($result) { echo "Navigation successful\n"; } else { echo "Failed to navigate\n"; } // Example 1: Set focus on listbox and send `whitespace` key up $listboxNumber = 4; $keyCode = VK_SPACE; echo "1. Set focus on listbox number $listboxNumber and send `whitespace` key up: "; $result1 = DOM::$listbox->set_focus_by_number($listboxNumber); $result2 = SYSTEM::$keyboard->send_key_up($keyCode); if ($result1 && $result2) { echo "Focus set and `whitespace` key up sent successfully\n"; } else { echo "Failed to set `whitespace` or send space key up\n"; } sleep(2); echo "\n"; // Example 2: Send `down` arrow key up $keyCode = VK_DOWN; echo "2. Send `down` arrow key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Down` arrow key up sent successfully\n"; } else { echo "Failed to send `down` arrow key up\n"; } sleep(2); echo "\n"; // Example 3: Send down arrow key up again echo "3. Send `down` arrow key up again: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Down` arrow key up sent successfully\n"; } else { echo "Failed to send `down` arrow key up\n"; } sleep(2); echo "\n"; // Example 4: Send `up` arrow key up $keyCode = VK_UP; echo "4. Send `up` arrow key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Up arrow` key up sent successfully\n"; } else { echo "Failed to send `up arrow` key up\n"; } sleep(2); echo "\n"; // Example 5: Send `page down` key up $keyCode = VK_PAGEDOWN; echo "5. Send `page down` key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Page down` key up sent successfully\n"; } else { echo "Failed to send `page down` key up\n"; } sleep(2); echo "\n"; // Example 6: Send `page up` key up $keyCode = VK_PAGEUP; echo "6. Send `page up` key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Page up` key up sent successfully\n"; } else { echo "Failed to send `page up` key up\n"; } sleep(2); echo "\n"; // Example 7: Send `end` key up $keyCode = VK_END; echo "7. Send `end` key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`End` key up sent successfully\n"; } else { echo "Failed to send `end` key up\n"; } sleep(2); echo "\n"; // Example 8: Send `home` key up $keyCode = VK_HOME; echo "8. Send `home` key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Home` key up sent successfully\n"; } else { echo "Failed to send `home` key up\n"; } sleep(2); echo "\n"; // Example 10: Send `tab` key up $keyCode = VK_TAB; echo "10. Send `tab` key up: "; $result = SYSTEM::$keyboard->send_key_up($keyCode); if ($result) { echo "`Tab` key up sent successfully\n"; } else { echo "Failed to send `tab` key up\n"; } // Set variables for navigation to test page $testUrl = TEST_POLYGON_URL . "input.html"; // Navigate to the test page echo "Navigate to test page with listbox: "; $result = WEB::$browser->navigate($testUrl); if ($result) { echo "Navigation successful\n"; } else { echo "Failed to navigate\n"; } sleep(2); echo "\n"; // Example 11: Set focus on input and input text $inputNumber = 1; $text = "teststring"; echo "11. Set focus on input field and input text: "; $result1 = DOM::$input->set_focus_by_number($inputNumber); $result2 = SYSTEM::$keyboard->send_input($text); if ($result1 && $result2) { echo "Focus set and text input successful\n"; } else { echo "Failed to set focus or input text\n"; } sleep(2); echo "\n"; // Example 12: Select text and cut to clipboard $inputNumber = 1; $clickX = 10; $clickY = 10; echo "12. Select text and cut to clipboard: "; // click + double Click to sellect $inputElement = DOM::$input->get_by_number($inputNumber); $result1 = $inputElement->send_mouse_click($clickX, $clickY); $result2 = $inputElement->send_mouse_double_click($clickX, $clickY); if ($result1 && $result2) { echo "Text selected successfully\n"; } else { echo "Failed to select text\n"; } // Cut text to clipboard $keyCode = "88"; // X key $isAltKey = false; $isCtrl = true; echo "Cut text to clipboard (Ctrl+X): "; $result = SYSTEM::$keyboard->send_key_up($keyCode, $isAltKey, $isCtrl); if ($result) { echo "Text cut successfully\n"; } else { echo "Failed to cut text\n"; } // Get text from clipboard echo "Get text from clipboard: "; $clipboardText = SYSTEM::$clipboard->get_text(); if ($clipboardText !== false) { echo "Clipboard text: $clipboardText\n"; } else { echo "Failed to get clipboard text\n"; } sleep(2); echo "\n"; // Example 13: Copy selected text to clipboard $keyCode = "45"; // Insert key $isAltKey = false; $isCtrl = true; // Get coordinates of element and select it $elementText = "Пример"; $exactMatch = false; echo "Get coordinates of element: "; $x = DOM::$h3->get_x_by_inner_text($elementText, $exactMatch); $y = DOM::$h3->get_y_by_inner_text($elementText, $exactMatch); if ($x !== false && $y !== false) { echo "Element coordinates: $x x $y\n"; } else { echo "Failed to get element coordinates\n"; } echo "\n"; // Select element by double-clicking echo "Select element by double-clicking: "; $result1 = SYSTEM::$mouse->send_click($x, $y); $result2 = SYSTEM::$mouse->send_double_click($x, $y); if ($result1 && $result2) { echo "Element selected successfully\n"; } else { echo "Failed to select element\n"; } echo "13. Copy selected text to clipboard (Ctrl+Insert): "; $result = SYSTEM::$keyboard->send_key_up($keyCode, $isAltKey, $isCtrl); if ($result) { echo "Text copied successfully\n"; } else { echo "Failed to copy text\n"; } sleep(2); echo "\n"; // Example 14: Get copied text from clipboard echo "14. Get copied text from clipboard: "; $clipboardText = SYSTEM::$clipboard->get_text(true); if ($clipboardText !== false) { echo "Copied text: $clipboardText\n"; } else { echo "Failed to get copied text\n"; } // Quit the application WINDOW::$app->quit(); ?>
# 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://ya.ru"),"<br>") sleep(1) # 2 echo("2. Зададим фокус на строку поиска : ") echo(input.set_focus_by_number(0),"<br>") # 3 echo("3. Введем s : ") keyboard.set_current_language("en") echo(keyboard.send_key_down("s",false)," ") echo(keyboard.send_key_up("s",false)) # конец echo("<hr><br>") # Quit app.quit()
#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 = "localhost:7010"; InitXHE(); // начало echo("<hr><font color=blue>keyboard.send_key_up</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. Введем s (код 83) : "); keyboard.set_current_language("en"); echo(keyboard.send_key_up("83")); // конец echo("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>keyboard.send_key_up</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. Введем s (код 83) : "); keyboard.set_current_language("en"); echo(keyboard.send_key_up(83,true)); // конец echo("\n"); // Quit app.quit();
=============================================
Keyboard Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.