Подскажите как сделать клик с зажатой клавишей ALT

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
226
Благодарностей
339
Баллы
63
Снипет на C# подскажите как сделать клик по атрибутам с зажатой клавишей ALT.
Код:
instance.ActiveTab.KeyEvent("LeftAlt", "down", ""); // нажать
instance.ActiveTab.KeyEvent("LeftAlt", "up", ""); // отпустить
Код:
// НАСТРОЙКИ СНИППЕТА

// По умолчанию все значения для сниппета берутся из переменных
// проекта с префиксами "find_element_", "set_value_", "get_value_", "rise_"

// Если заполнить поля ниже - значения переменных будут игнорироваться

//Один или несколько тегов (через ';')
string tag = "";
//Название атрибута
string attributeName = "";
//Значение атрибута
string attributeValue = "";
//Тип поиска значения (text, notext, regexp)
string searchKind = "";
//Номер совпадения
int number = 0;

//Названия события для вызова
string eventName = "";


#region Капот

//Получаем значения из переменных
if (string.IsNullOrWhiteSpace(tag) && project.Variables.Keys.Contains("find_element_tag"))
{
    tag = project.Variables["find_element_tag"].Value;
}
if (string.IsNullOrWhiteSpace(attributeName) && project.Variables.Keys.Contains("find_element_attr_name"))
{
    attributeName = project.Variables["find_element_attr_name"].Value;
}
if (string.IsNullOrWhiteSpace(attributeValue) && project.Variables.Keys.Contains("find_element_attr_value"))
{
    attributeValue = project.Variables["find_element_attr_value"].Value;
}
if (string.IsNullOrWhiteSpace(searchKind) && project.Variables.Keys.Contains("find_element_search_kind"))
{
    searchKind = project.Variables["find_element_search_kind"].Value;
}
if (searchKind!="text" && searchKind!="notext" && searchKind!="regexp")
{
    searchKind = "text";
}
if (project.Variables.Keys.Contains("find_element_number"))
{
    int.TryParse(project.Variables["find_element_number"].Value, out number);
}

if (string.IsNullOrWhiteSpace(eventName) && project.Variables.Keys.Contains("rise_event_name"))
{
    eventName = project.Variables["rise_event_name"].Value;
}

//Ищем элемент
var tab = instance.ActiveTab;
var el = tab.FindElementByAttribute(tag, attributeName, attributeValue, searchKind, number);
if (el.IsNull || el.IsVoid)
{
    throw new Exception("Элемент по заданным атрибутам не найден, действие не выполнено!");
}
//Вызываем событие
el.RiseEvent(eventName, instance.EmulationLevel);

#endregion
Благодарю
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Код:
instance.ActiveTab.KeyEvent("Tab", "press", "alt");
Вместо Tab впишите клавишу, которую нужно.
 

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
226
Благодарностей
339
Баллы
63
Код:
instance.ActiveTab.KeyEvent("Tab", "press", "alt");
Вместо Tab впишите клавишу, которую нужно.
Код:
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Alt, KeyboardEvent.Press);
Нашел рабочий код который кушает zp, но действия выполняются последовательно, не подскажешь как сначало зажать ALT потом кликнуть по координатам потом отпустить.
Код:
// Конструктор действий, тип RiseEvent
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Alt, KeyboardEvent.Press);
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0;0").FindElementByAttribute("span", "class", "freddicon\\ trash", "regexp", 4);
if (he.IsVoid) return -1;
// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
he.RiseEvent("click", instance.EmulationLevel);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)