send_key_down
send_key_down($key,$is_key=false); - данная функция используется для эмуляции на уровне событий нажатие заданной клавиши с клавиатуры. Может работать даже если программа находится в свернутом состоянии и в трее.Функция на вход принимает параметры:
Если во время работы этой функции нажать Ctrl (или эмулировать нажатие через комманды set_ctrl_prefix) то посланная клавиша будет интерпритироваться как набор горячих клавиш для хумана.
После отработки функция возвращает результат своей работы в скрипт :
<?php // Scenario: Demonstrates how to send key down 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"; // 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 '$testUrl': "; $result = WEB::$browser->navigate($testUrl); if ($result) { echo "Navigation successful\n"; } else { echo "Failed to navigate\n"; } echo "\n"; // Example 1: Set focus on listbox and send space key down $listboxNumber = 4; $keyCode = VK_SPACE; echo "1. Set focus on listbox number $listboxNumber and send `space` key down: "; $result1 = DOM::$listbox->set_focus_by_number($listboxNumber); $result2 = SYSTEM::$keyboard->send_key_down($keyCode); if ($result1 && $result2) { echo "Focus set and `space` key down sent successfully\n"; } else { echo "Failed to set focus or send `space` key down\n"; } sleep(1); echo "\n"; // Example 2: Send down arrow key down $keyCode = VK_DOWN; echo "2. Send `down arrow` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Down arrow` key down sent successfully\n"; } else { echo "Failed to send `down arrow` key down\n"; } sleep(1); echo "\n"; // Example 3: Send `down arrow` key down again echo "3. Send `down arrow` key down again: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Down arrow` key down sent successfully\n"; } else { echo "Failed to send `down arrow` key down\n"; } sleep(1); echo "\n"; // Example 5: Send `up arrow` key down $keyCode = VK_UP; echo "5. Send `up arrow` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Up arrow` key down sent successfully\n"; } else { echo "Failed to send `up arrow` key down\n"; } sleep(1); echo "\n"; // Example 6: Send `page down` key down $keyCode = VK_PAGEDOWN; echo "6. Send `page down` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Page down` key down sent successfully\n"; } else { echo "Failed to send `page down` key down\n"; } sleep(1); echo "\n"; // Example 7: Send `page up` key down $keyCode = VK_PAGEUP; echo "7. Send `page up` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Page up` key down sent successfully\n"; } else { echo "Failed to send `page up` key down\n"; } sleep(1); echo "\n"; // Example 8: Send `end` key down $keyCode = VK_END; echo "8. Send `end` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`End` key down sent successfully\n"; } else { echo "Failed to send `end` key down\n"; } sleep(1); echo "\n"; // Example 9: Send `home` key down $keyCode = VK_HOME; echo "9. Send `home` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Home` key down sent successfully\n"; } else { echo "Failed to send `home` key down\n"; } sleep(1); echo "\n"; // Example 10: Send tab key down $keyCode = VK_TAB; echo "10. Send `tab` key down: "; $result = SYSTEM::$keyboard->send_key_down($keyCode); if ($result) { echo "`Tab` key down sent successfully\n"; } else { echo "Failed to send `tab` key down\n"; } // Set variables for navigation to test page $testUrl = TEST_POLYGON_URL . "input.html"; // Navigate to the test page echo "Navigate to test page '$testUrl': "; $result = WEB::$browser->navigate($testUrl); if ($result) { echo "Navigation successful\n"; } else { echo "Failed to navigate\n"; } echo "\n"; // Example 10: Set focus input and send key 'V' by alt code $inputNumber = 1; $keyCode = "86"; // V key $isAltKey = true; echo "10. Set focus on input #$inputNumber field and input symbol by alt code '$keyCode': "; $result1 = DOM::$input->set_focus_by_number($inputNumber); $result2 = SYSTEM::$keyboard->send_key_down($keyCode, $isAltKey); if ($result1 && $result2) { echo "Focus set and text pasted successfully\n"; } else { echo "Failed to set focus or paste text\n"; } sleep(1); echo("\n"); // Example 11: Set focus input and send key 'v' $inputNumber = 1; $keyCode = "v"; // v key $isAltKey = false; echo "11. Set focus on input #$inputNumber field and input symbol '$keyCode': "; $result1 = DOM::$input->set_focus_by_number($inputNumber); $result2 = SYSTEM::$keyboard->send_key_down($keyCode, $isAltKey); if ($result1 && $result2) { echo "Focus set and text pasted successfully\n"; } else { echo "Failed to set focus or paste 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>") # 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_down(83,true)," ") echo(keyboard.send_key_up(83,true),"\n") sleep(5) # 4 echo("4. Перейдем на yahoo : ") echo(browser.navigate("http://yahoo.com"),"<br>") sleep(2) # 5 echo("5. Сдвинем страницу вниз (PgDown) : ") echo(mouse.send_click(81,5)," ") echo(keyboard.send_key_down(34,true)," ") echo(keyboard.send_key_up(34,true)," ") # конец 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_down</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_down("83",true)+" "); echo(keyboard.send_key_up("83",true)+"<br>"); // 4 шаг echo("4. Перейдем на msn : "); echo(browser.navigate("http://msn.ru")+"<br>"); sleep(2); // 5 шаг echo("5. Сдвинем страницу вниз (PgDown) : "); echo(mouse.send_click(81,5)+" "); echo(keyboard.send_key_down("34",true)+" "); // конец 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_down</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_down(83,true)+"\n"); // 4 шаг echo("4. Перейдем на yahoo : "); echo(browser.navigate("http://yahoo.com")+"<br>"); browser.sleep(2); // 5 шаг echo("5. Сдвинем страницу вниз (PgDown) : "); echo(mouse.send_click(81,5)+" "); echo(keyboard.send_key_down(34,true)+" "); // конец echo("\n"); // Quit app.quit();
=============================================
Keyboard Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.