humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

set_hook

set_hook($action,$php_script); - задать хук (выполнение опереленного скрипта при достижении определенного условия) на определенное действие.

Функция на вход принимает параметры:

  • $action – действие на которое ставится хук (условие) :      "unpause" - при нажатии кнопки 'Снять скрипт с паузы'
          "stop" - при нажатии кнопки 'Стоп'
          "exitapp" - при получении команды app->exitapp (начиная с 4.9.21)
          "quit" - при получении команды app->quit (начиная с 4.9.21)
  • $php_script – скрипт, который запускается по заданному действию

    После отработки функция возвращает результат своей работы в скрипт :
  • true – операция выполнена успешно
  • true – во время операции произошли ошибки

    Пример использования
    <?php
    // Scenario: Set hooks for script pause and stop actions
    $xhe_host = "localhost:7010";
    if (!isset($path)){
        // Path to the init.php file for connecting to the XHE API
        $path = "../../../Templates/init.php";
        // Including init.php grants access to all classes and functionality for working with the XHE API
        require($path);
    }
    
    echo "\n<span>debug->" . basename(__FILE__) . "</span>\n";
    
    // Example 1: Set hooks for unpause and stop actions
    echo "Example 1: Set hooks for unpause and stop actions\n";
    $unpauseHookFile = "hook/hook_unpause.php";
    $stopHookFile = "hook/hook_stop.php";
    
    $result1 = WINDOW::$debug->set_hook("unpause", $unpauseHookFile);
    if ($result1)
        echo "Unpause hook set successfully to $unpauseHookFile\n";
    else
        echo "Failed to set unpause hook to $unpauseHookFile\n";
    
    $result2 = WINDOW::$debug->set_hook("stop", $stopHookFile);
    if ($result2)
        echo "Stop hook set successfully to $stopHookFile\n";
    else
        echo "Failed to set stop hook to $stopHookFile\n";
    
    // Step: Display message and pause script to trigger unpause hook
    echo "\nStep: Display message and pause script to trigger unpause hook\n";
    $message = "To trigger the unpause hook, remove the script from pause.";
    WINDOW::$debug->message_box($message);
    WINDOW::$app->pause(0);
    
    // Step: Get result of unpause hook
    echo "\nStep: Get result of unpause hook\n";
    $unpauseResultFile = "hook/hook_unpause.php.res";
    if (SYSTEM::$file_os->is_exist($unpauseResultFile)) {
        $unpauseResult = SYSTEM::$textfile->read_file($unpauseResultFile);
        echo "Unpause hook result: $unpauseResult\n";
    }
    
    // Step: Display message and wait for stop hook
    echo "\nStep: Display message and wait for stop hook\n";
    $message = "To trigger the stop hook, click the stop script button.";
    WINDOW::$debug->message_box($message);
    
    // Long pause to allow manual stop
    sleep(5000);
    
    // Quit the application
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7017"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>debug.xxxxxxxxx</font><hr>")
    
    # 1 
    echo("1. Зададим обработчики (хуки) на действия снятия с паузы и остановки : ")
    echo(debug.set_hook("unpause","hook/hook_unpause.php")," ")
    echo(debug.set_hook("stop","hook/hook_stop.php"),"<br>")
    
    # сообщение 
    debug.message_box("Для запуска хука снатия с паузы, снимите скрипт с паузы.")
    # поставим на паузу - после нажатия снятия с кнопки выполнится  hook_unpause.php
    app.pause(0)
    
    # 2 
    echo("2. Получим результат работы хука (hook_unpause.php) : <br><br>")
    if file_os.is_exist("hook/hook_unpause.php.res"):
        debug.message_box(textfile.read_file("hook/hook_unpause.php.res"))
      
    # сообщение 
    debug.message_box("Для запуска хука останова, нажмите кнопку остановить скрипт.")
    # большая пауза
    sleep(5000)
    
    # конец
    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>debug.clear_tab_content</font><hr>");
    	
    
    // 1 шаг
    echo "1. Зададим обработчики (хуки) на действия снятия с паузы и остановки : ";
    echo $debug->set_hook("unpause","hook/hook_unpause.php") . "\n";
    echo $debug->set_hook("stop","hook/hook_stop.php")."<br>";
    
    // сообщение 
    $debug->message_box("Для запуска хука снатия с паузы, снимите скрипт с паузы.");
    // поставим на паузу - после нажатия снятия с кнопки выполнится  hook_unpause.php
    $app->pause(0);
    
    // 2 шаг
    echo "2. Получим результат работы хука (hook_unpause.php) : \n\n";
    if ($file_os->is_exist("hook/hook_unpause.php.res"))
      echo ($textfile->read_file("hook/hook_unpause.php.res"))."<br>";
      
    // сообщение 
    $debug->message_box("Для запуска хука останова, нажмите кнопку остановить скрипт.");
    // боьшая пауза
    sleep(5000);
    
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7010";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>debug.set_hook</font><hr>");
    
    // 1 шаг
    echo("1. Зададим обработчики (хуки) на действия снятия с паузы и остановки : ");
    echo(debug.set_hook("unpause","hook/hook_unpause.js")+" ");
    echo(debug.set_hook("stop","hook/hook_stop.js")+"<br>");
    
    // сообщение 
    debug.message_box("Для запуска хука снатия с паузы, снимите скрипт с паузы.");
    // поставим на паузу - после нажатия снятия с кнопки выполнится  hook_unpause.php
    app.pause(0);
    
    // 2 шаг
    echo("2. Получим результат работы хука (hook_unpause.php) : \n");
    if (file_os.is_exist("hook/hook_unpause.js.res"))
      echo((textfile.read_file("hook/hook_unpause.js.res"))+"<br>");
      
    // сообщение 
    debug.message_box("Для запуска хука останова, нажмите кнопку остановить скрипт.");
    // боьшая пауза
    browser.sleep(5000);
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    Debug    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .