При использовании «1С Предприятие» иногда требуется программно выполнить нажатие клавиш или сочетаний клавиш на клавиатуре. Для программного нажатия клавиш существует COM объект Wscript.shell. Данный объект позволяет имитировать нажатие как отдельных клавиш так и сочетаний. Кроме того существует возможность задавать количество нажатий. Ниже представлен список кодов клавиш.
COM объект Wscript.shell содержит метод SendKeys, который на вход принимает строку которая содержит код одной кнопки или их сочетание.
Симитировать нажатие клавиши
ОбъектShell = Новый COMОбъект(«Wscript.Shell»);
//Удерживая Cntr нажать A
ОбъектShell.SendKeys(«^A»);
//Удерживая Shift нажать A, затем отпустив Shift нажать B
ОбъектShell.SendKeys(«(+A)B»);
//Стрелку в вверх нажать 3 раза
ОбъектShell.SendKeys(«»);
Таблица кодов клавиш клавиатуры
Клавиша | Код |
Стрелка вверх | |
Стрелка вниз | |
Стрелка вправо | |
Стрелка влево | |
BACKSPACE | или или |
BREAK | |
CAPS LOCK | |
DELETE | или |
END | |
ENTER | или ~ |
ESC | |
HOME | |
INSERT | или |
NUM LOCK | |
PAGE DOWN | |
PAGE UP | |
PRINT SCREEN | |
SCROLL LOCK | |
TAB | |
+ | |
^ | |
% | |
~ | |
( | |
) | |
[ | |
] | |
> | <>> |
Shift | |
Ctrl | |
Alt | |
F1 | |
F2 | |
F3 | |
F4 | |
F5 | |
F6 | |
F7 | |
F8 | |
F9 | |
F10 | |
F11 | |
F12 |
ARDUINO программно убираем ложные срабатывания кнопки Программирование STM32
Для того чтобы задать количество нажатий необходимо использовать следующую запись . Например если требуется нажать клавишу Стрелка влево 10 раз то запись будет .
Комментарии (0)
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Источник: 1clenta.ru
Программирование 1С 8.х для начинающих
- Вы здесь:
- Главная
- Статьи
- Конфигурация
- Форма
- Программное нажатие кнопки на форме
Поделитесь в соцсетях
Конфигурация
Программное нажатие кнопки на форме
Подробности Категория: Форма
Как программно нажать кнопку на форме
Для программного нажатия кнопки существует два варианта:
Уроки Arduino. Расширенное управление кнопкой
- Сделать процедуру, вызываемую кнопкой, экспортной
- Использовать скрипты Windows
1. Чтобы сделать процедуру экспортной нужно только добавить слово Экспорт
Процедура СообщитьПользователю() Экспорт КонецПроцедуры
Причем у всех форм всегда есть два метода доступных из вне: Закрыть(), Открыть().
2. Второй способ описан здесь
Недостаточно прав для комментирования
Источник: 1s-portal.ru
Как нажать программно кнопку на другом сайте на C#
Добрый день.
Разберем такой случай когда нам присылают ссылку на подтверждение, а после перехода по ссылке открывается страница с кнопкой подтверждения на которую надо нажать. Либо просто надо нажать на кнопку на странице HTML. Если с переходом по ссылке более менее все понятно, то с нажатием кнопки довольно не просто. Давайте разбираться.
Немного теории.
Обычно копка является частью HTML формы. Соответственно нажимая на кнопку браузер формирует ответ серверу, обычно в POST запросе, собирая все данные с input элементов в веб-формы. Проще говоря цель нажатия кнопки это отослать представлениt заполненной веб-формы на веб-сервер.
Возьмем следующий пример:
В этом примере имеется форма с именем «login» методом «POST» и обработчиком «Home/Result». И имеются поля id и sitename которые уже заполнены значениями id и deptech соответственно, также имеется кнопка с именем «send».
В итоге нужно сформировать представление веб формы отослать на обработчик «Home/Result».
По умолчанию интернет-тип данных для отправки вэб-форм медиа это: «application/x-www-form-urlencoded».
Это формат для кодирования пар ключ-значение с возможностью дублирования ключей. Каждая пара ключ-значение отделяется символом
Добавим два класса которые будут описывать нашу форму и поля ввода
public class Inputitem < /// /// Тип элемента формы /// public string InputType < get; set; >/// /// Имя элемента формы /// public string InputName < get; set; >/// /// Значение элемента формы /// public string InputValue < get; set; >/// /// Форма в которой содержатся элементы /// public HtmlFormValue FormAtribute < get; set; >>
Класс который будет описывать нашу форму
public class HtmlFormValue < public HtmlFormValue() < ListInputs = new List(); > /// /// Имя вебформы, может отсутствовать /// public string NameForm < get; set; >/// /// Oбработчик, к которому обращаются данные формы при их отправке на сервер /// public string ActionForm < get; set; >/// /// Метод который использует форма для отправки на сервер Post или Get /// public string MethodForm < get; set; >/// /// Список всех всех input Html элементов в вебформе /// public List ListInputs < get; set; >/// /// Список элементов в формате ‘Имя=Значение’ /// /// public List GetInputsNameValue()=>ListInputs .Select(x=>$»=») .ToList(); >
Добавим недостающий класс ButtonClicker в проект.
using System.Net; using System; using hap = HtmlAgilityPack; using System.Collections.Generic; using System.Linq; namespace ClickHtmlButton < public class ButtonClicker < public string ButtonClick(string URI, string ButtonValue) < Uri uri = new Uri(URI); using (WebClient wc = new WebClient()) < //Загружаем страницу HTML в string string HtmlString = wc.DownloadString(uri); //Создаем HtmlAgilityPack hap.HtmlDocument HtmlDoc = new hap.HtmlDocument(); //Загружаем Html документ из строки HtmlDoc.LoadHtml(HtmlString); //Выбираем все формы на странице hap.HtmlNodeCollection formNodes = HtmlDoc.DocumentNode.SelectNodes(«//form»); ListHtmlForms = new List(); var AllInputs = new List(); if (formNodes != null) < foreach (var formAtribute in formNodes) < HtmlFormValue FormAtribute = new HtmlFormValue < ActionForm = formAtribute.Attributes[«action»].Value, MethodForm = formAtribute.Attributes[«method»].Value, NameForm = formAtribute.Attributes[«name»].Value >; //Выбираем все imputs на форме hap.HtmlNodeCollection inputsNodes = formAtribute?.SelectNodes(«//input»); if (inputsNodes != null) < AllInputs = inputsNodes .Select(x =>new Inputitem < InputName = x.Attributes[«name»]?.Value ?? «», InputType = x.Attributes[«type»].Value, InputValue = x.Attributes[«value»]?.Value ?? «», FormAtribute = FormAtribute >).ToList(); > FormAtribute.ListInputs = AllInputs; HtmlForms.Add(FormAtribute); > HtmlFormValue FindForm = AllInputs.First(x => x.InputName == ButtonValue).FormAtribute; if (FindForm != null) < //Собираем запрос //Указываем способ кодировки wc.Headers[HttpRequestHeader.ContentType] = «application/x-www-form-urlencoded»; //добавляем параметры string myParameters = string.Join(«, FindForm.GetInputsNameValue()); //Формируем строку на указанный ресурс string uripath = $»»; //отправляем и получаем результат string HtmlResult = wc.UploadString(uripath, myParameters); return HtmlResult; > else < return «»; >> else < return «»; >> > > >
Для тестов будем использовать нашу форму.
Источник: deptech.ru