<spanid="module-robot-keyboard"></span><h1>4. Функции Keyboard<aclass="headerlink"href="#keyboard"title="Ссылка на этот заголовок">¶</a></h1>
<divclass="section"id="id1">
<h2>Общее<aclass="headerlink"href="#id1"title="Ссылка на этот заголовок">¶</a></h2>
<p>Клавиатура - это главный текстовый инструмент, который обладает 100% точностью передачи данных. Сего помощью можно отправлять сообщения, ожидать нажатия и выполнять различные комбинации клавиш. На этой странице представлена вся необходимая информация по управлению клавиатурой со стороны программного робота RPA.</p>
<p>В отличие от многих RPA платформ, pyOpenRPA обладает функциями, которые не зависят от текущей раскладки клавиатуры. За счет этого надежность и стабильность программного робота существенно возрастает.</p>
<p>ВНИМАНИЕ! ПРИ ВЫЗОВЕ ФУНКЦИЙ ОБРАЩАЙТЕ ВНИМАНИЕ НА РЕГИСТР.</p>
</div>
<divclass="section"id="id2">
<h2>Примеры использования<aclass="headerlink"href="#id2"title="Ссылка на этот заголовок">¶</a></h2>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">Down</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inKeyInt</span><spanclass="p">:</span><spanclass="n">int</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#Down"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.Down"title="Ссылка на это определение">¶</a></dt>
<dd><p>Нажать (опустить) клавишу. Если клавиша уже была опущена, то ничего не произойдет.</p>
<p>ВНИМАНИЕ! ПРИ ПОПЫТКЕ ПЕЧАТИ ТЕКСТА БУДЕТ УЧИТЫВАТЬ ТЕКУЩУЮ РАСКЛАДКУ КЛАВИАТУРЫ. ДЛЯ ПЕЧАТИ ТЕКСТА ИСПОЛЬЗУЙ Write!</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<li><p><strong>inKeyInt</strong> (<em>int</em>) – Перечень клавиш см. в разделе «Коды клавиш». Пример: KEY_HOT_CTRL_LEFT, KEY_ENG_A</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">HotkeyCombination</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">inKeyList</span></em>, <emclass="sig-param"><spanclass="n">inDelaySecFloat</span><spanclass="o">=</span><spanclass="default_value">0.3</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#HotkeyCombination"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.HotkeyCombination"title="Ссылка на это определение">¶</a></dt>
<dd><p>Получает перечень клавиш для одновременного нажатия. Между нажатиями программа ожидания время inDelaySecFloat
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<li><p><strong>inKeyList</strong>– Список клавиш для одновременного нажатия. Перечень клавиш см. в разделе «Коды клавиш». Пример: KEY_HOT_CTRL_LEFT,KEY_ENG_A</p></li>
<li><p><strong>inDelaySecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Интервал между нажатиями. Необходим в связи с тем, что операционной системе требуется время на реакцию на нажатие клавиш, по умолчанию: 0.3</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">HotkeyCtrlA_CtrlC</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#HotkeyCtrlA_CtrlC"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.HotkeyCtrlA_CtrlC"title="Ссылка на это определение">¶</a></dt>
<dd><p>Выполнить выделение текста, после чего скопировать его в буфер обмена
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<spanclass="n">Keyboard</span><spanclass="o">.</span><spanclass="n">HotkeyCtrlA_CtrlC</span><spanclass="p">()</span><spanclass="c1"># Отправить команды: выделить все, скопировать в буфер обмена</span>
<ddclass="field-odd"><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">HotkeyCtrlV</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#HotkeyCtrlV"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.HotkeyCtrlV"title="Ссылка на это определение">¶</a></dt>
<dd><p>Выполнить вставку текста из буфера обмена
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<ddclass="field-odd"><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">IsDown</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inKeyInt</span><spanclass="p">:</span><spanclass="n">int</span></em><spanclass="sig-paren">)</span>→ bool<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#IsDown"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.IsDown"title="Ссылка на это определение">¶</a></dt>
<dd><p>Проверить, опущена ли клавиша. Вернет True если опущена; False если поднята.</p>
<p>ВНИМАНИЕ! ПРИ ПОПЫТКЕ ПЕЧАТИ ТЕКСТА БУДЕТ УЧИТЫВАТЬ ТЕКУЩУЮ РАСКЛАДКУ КЛАВИАТУРЫ. ДЛЯ ПЕЧАТИ ТЕКСТА ИСПОЛЬЗУЙ Write!</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">KEY_HOT_COLON</code><emclass="property"> = 39</em><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.KEY_HOT_COLON"title="Ссылка на это определение">¶</a></dt>
<spanid="pyOpenRPA.Robot.Keyboard.KEY_RUS_Ж"></span><codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">KEY_RUS_Ж</code><emclass="property"> = 39</em><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.KEY_RUS_"title="Ссылка на это определение">¶</a></dt>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">Send</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inKeyInt</span><spanclass="p">:</span><spanclass="n">int</span></em>, <emclass="sig-param"><spanclass="n">inDoPressBool</span><spanclass="p">:</span><spanclass="n">bool</span><spanclass="o">=</span><spanclass="default_value">True</span></em>, <emclass="sig-param"><spanclass="n">inDoReleaseBool</span><spanclass="p">:</span><spanclass="n">bool</span><spanclass="o">=</span><spanclass="default_value">True</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#Send"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.Send"title="Ссылка на это определение">¶</a></dt>
<dd><p>Имитация нажатия/отпускания любой физической клавиши. Посылает событие в операционную систему, которые выполняет нажатие и отпускание данной клавиши</p>
<p>ВНИМАНИЕ! ПРИ ПОПЫТКЕ ПЕЧАТИ ТЕКСТА БУДЕТ УЧИТЫВАТЬ ТЕКУЩУЮ РАСКЛАДКУ КЛАВИАТУРЫ. ДЛЯ ПЕЧАТИ ТЕКСТА ИСПОЛЬЗУЙ Write!</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<spanclass="n">Keyboard</span><spanclass="o">.</span><spanclass="n">Send</span><spanclass="p">(</span><spanclass="n">Keyboard</span><spanclass="o">.</span><spanclass="n">KEY_ENG_A</span><spanclass="p">)</span><spanclass="c1"># Нажать клавишу A. Если будет активна русская раскладка, то будет выведена буква ф.</span>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">Up</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inKeyInt</span><spanclass="p">:</span><spanclass="n">int</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span>→ None<aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#Up"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.Up"title="Ссылка на это определение">¶</a></dt>
<dd><p>Отпустить (поднять) клавишу. Если клавиша уже была поднята, то ничего не произойдет.</p>
<p>ВНИМАНИЕ! ПРИ ПОПЫТКЕ ПЕЧАТИ ТЕКСТА БУДЕТ УЧИТЫВАТЬ ТЕКУЩУЮ РАСКЛАДКУ КЛАВИАТУРЫ. ДЛЯ ПЕЧАТИ ТЕКСТА ИСПОЛЬЗУЙ Write!</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<li><p><strong>inKeyInt</strong> (<em>int</em>) – Перечень клавиш см. в разделе «Коды клавиш». Пример: KEY_HOT_CTRL_LEFT, KEY_ENG_A</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">Wait</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inKeyInt</span><spanclass="p">:</span><spanclass="n">int</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#Wait"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.Wait"title="Ссылка на это определение">¶</a></dt>
<dd><p>Блокирует осуществление программы, пока данная обозначенная клавиша не будет нажата.
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ. ОЖИДАЕТ НАЖАТИЕ СООТВЕТСВУЮЩЕЙ ФИЗИЧЕСКОЙ КЛАВИШИ</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<li><p><strong>inKeyInt</strong> (<em>int</em>) – Перечень клавиш см. в разделе «Коды клавиш». Пример: KEY_HOT_CTRL_LEFT,KEY_ENG_A</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<codeclass="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><codeclass="sig-name descname">Write</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">inTextStr</span><spanclass="p">:</span><spanclass="n">str</span></em>, <emclass="sig-param"><spanclass="n">inDelayFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0</span></em>, <emclass="sig-param"><spanclass="n">inRestoreStateAfterBool</span><spanclass="p">:</span><spanclass="n">bool</span><spanclass="o">=</span><spanclass="default_value">True</span></em>, <emclass="sig-param"><spanclass="n">inExactBool</span><spanclass="p">:</span><spanclass="n">Optional<spanclass="p">[</span>bool<spanclass="p">]</span></span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">inWaitAfterSecFloat</span><spanclass="p">:</span><spanclass="n">float</span><spanclass="o">=</span><spanclass="default_value">0.4</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/pyOpenRPA/Robot/Keyboard.html#Write"><spanclass="viewcode-link">[исходный код]</span></a><aclass="headerlink"href="#pyOpenRPA.Robot.Keyboard.Write"title="Ссылка на это определение">¶</a></dt>
<dd><p>Печатает текст, который был передан в переменной inTextStr (поддерживает передачу в одной строке символов разного языка). Не зависит от текущей раскладки клавиатуры! Посылает искусственные клавишные события в ОС, моделируя печать данного текста. Знаки, не доступные на клавиатуре, напечатаны как явный unicode знаки, использующие определенную для ОС функциональность, такие как alt+codepoint.
Чтобы гарантировать текстовую целостность, все в настоящее время нажатые ключи выпущены прежде текст напечатан, и модификаторы восстановлены впоследствии.</p>
<p>ВНИМАНИЕ! ПЕЧАТАЕТ ЛЮБУЮ СТРОКУ, ДАЖЕ В СОЧЕТАНИИ НЕСКОЛЬКИХ ЯЗЫКОВ ОДНОВРЕМЕННО. ДЛЯ РАБОТЫ С ГОРЯЧИМИ КЛАВИШАМИ ИСПОЛЬЗУЙ ФУНКЦИЮ Send, Up, Down, HotkeyCombination</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<li><p><strong>inTextStr</strong> (<em>str</em>) – Текст, отправляемый на печать. Не зависит от текущей раскладки клавиатуры!</p></li>
<li><p><strong>inDelayFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Число секунд, которое ожидать между нажатиями. По умолчанию 0</p></li>
<li><p><strong>inRestoreStateAfterBool</strong> (<em>bool</em><em>, </em><em>опциональный</em>) – Может использоваться, чтобы восстановить регистр нажатых ключей после того, как текст напечатан, т.е. нажимает ключи, которые были выпущены в начало.</p></li>
<li><p><strong>inExactBool</strong> (<em>bool</em><em>, </em><em>опциональный</em>) – Печатает все знаки как явный unicode. Необязательный параметр</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) – Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p></li>
<h2>Коды клавиш<aclass="headerlink"href="#id4"title="Ссылка на этот заголовок">¶</a></h2>
<p>Ниже представлены коды горячих клавиш, а также символов русской и английской раскладки.</p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># ШЕСТНАДЦАТИРИЧНЫЙ СКАН-КОД В РУССКОЙ РАСКЛАДКЕ (НЕЗАВИСИМО ОТ ВЫБРАННОГО ЯЗЫКА НА КЛАВИАТУРЕ)</span>
<spanclass="c1"># ОТОБРАЖЕНИЕ СКАН КОДОВ НА КЛАВИАТУРЕ https://snipp.ru/handbk/scan-codes</span>
<h2>Дополнительная функциональность<aclass="headerlink"href="#id5"title="Ссылка на этот заголовок">¶</a></h2>
<p>Дополнительно модуль содержит функции вспомогательной библиотеки. Ознакомиться с описанием можно <aclass="reference external"href="https://github.com/boppreh/keyboard#api">Здесь</a></p>
<divclass="highlight-python notranslate"><divclass="highlight"><pre><span></span><spanclass="c1"># Пример использования функции send</span>