Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2016, 11:19   #1
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию Клик мыши в веб-браузере Awesomium

const int x = 32000;
const int y = 32000;
?
Как их вообще считать?

Код:
using System.Runtime.InteropServices;  
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        [DllImport("User32.dll")]
        static extern void mouse_event(MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo);
 
        
        [Flags]
        enum MouseFlags
        {
            Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008,
            RightUp = 0x0010, Absolute = 0x8000
        };
 
        private void button1_Click(object sender, EventArgs e)
        {
            // использование - клик правой примерно в центре экрана
            const int x = 32000;
            const int y = 32000;
 
            mouse_event(MouseFlags.Absolute | MouseFlags.Move, x, y, 0, UIntPtr.Zero);
            mouse_event(MouseFlags.Absolute | MouseFlags.RightDown, x, y, 0, UIntPtr.Zero);
            mouse_event(MouseFlags.Absolute | MouseFlags.RightUp, x, y, 0, UIntPtr.Zero);
 
        }
    }
Unnika вне форума Ответить с цитированием
Старый 07.04.2016, 11:25   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зависит от того что вы пытаетесь сделать... В Awesomium есть более простые варианты симуляции клика, например InjectMouseDown/Up или с помощью JavaScript.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.04.2016, 11:30   #3
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Зависит от того что вы пытаетесь сделать... В Awesomium есть более простые варианты симуляции клика, например InjectMouseDown/Up или с помощью JavaScript.
так оно так , но этот вариант подходит , просто не знаю как перевести эти числа , а методом подбора устал делать
Unnika вне форума Ответить с цитированием
Старый 07.04.2016, 11:31   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

куда вы хотите клик послать?
может есть проще метод?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.04.2016, 11:33   #5
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
куда вы хотите клик послать?
может есть проще метод?
у меня через awesomium открывается в TabControle сайт , мне нужно с сайта получить координаты
Даже можно просто на экране получить эти координаты ...
и потом чтобы происходил клик по данным координатам
Unnika вне форума Ответить с цитированием
Старый 07.04.2016, 11:36   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
мне нужно с сайта получить координаты
это поясните?
координаты элемента на сайте?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.04.2016, 11:37   #7
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это поясните?
координаты элемента на сайте?
можно и так сказать
Unnika вне форума Ответить с цитированием
Старый 07.04.2016, 11:40   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что за координаты?

А кликать так
Код:
        /// <summary>
        /// Simulates mouse movement to the specified coordinates and click.
        /// As I remember it requires coordinates relative to the currently displayed area, and also will not work if specified coordinates are out of that area.
        /// </summary>
        public static void Click(IWebView webView, int x, int y)
        {
            webView.InjectMouseMove(x, y);
            webView.InjectMouseDown(MouseButton.Left);
            webView.InjectMouseUp(MouseButton.Left);
        }
Код:
Click(webControl, 100, 200);
или так с помощью JS если нужен просто элемент, а не координаты:
Код:
        /// <summary>
        /// Fires specified event on element specified by any Javascript query for getting a single element.
        /// </summary>
        /// <param name="getElementQuery">
        /// <para>Any Javascript query to get an element.</para>
        /// <para>Examples:</para>
        /// <para>"document.getElementById('id')"</para>
        /// <para>"document.getElementsByClassName('name')[0]"</para>
        /// <para>"document.evaluate(\"//a[contains(@href, 'something')]\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue" (XPath)</para>
        /// </param>
        /// <param name="eventName">Event name such as "click", "mouseup"</param>
        public static void JsFireEvent(IWebView webView, string getElementQuery, string eventName)
        {
            webView.ExecuteJavascript(@"
                                function fireEvent(element,event) {
                                    var evt = document.createEvent('HTMLEvents');
                                    evt.initEvent(event, true, false ); // event type,bubbling,cancelable
                                    element.dispatchEvent(evt);                                 
                                }
                                " + String.Format("fireEvent({0}, '{1}');", getElementQuery, eventName));
        }
Код:
JsFireEvent(webControl, "любой JS запрос например getElementById или XPath, примеры выше", "click")
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.04.2016, 11:42   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)вы можете через JavaScript кликнуть.
2)если перейти на WebView, то вы вполне можете напрямую инжектить клики в контрол.
но с ним немного сложнее работать будет, если нужна интерактивность.
Цитата:
А кликать так
я тоже так думал, но у него WinForms.WebControl, он не дает доступа до View.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.04.2016, 11:45   #10
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Грубо говоря , есть блоки на сайте , я хочу чтобы мышка кликнула просто на этот блок и все
Блок как на скрине
просто произвести клик мышью по нему , больше ни чего не нужно
Изображения
Тип файла: jpg 123.JPG (30.4 Кб, 146 просмотров)
Unnika вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты мыши при нажатии в веб-браузере Awesomium Unnika Windows Forms 8 06.04.2016 15:37
Как имитировать клик мыши в определенном месте в браузере iukash Qt и кроссплатформенное программирование С/С++ 5 17.02.2011 15:28
Клик мыши по кнопке SeregaKo Общие вопросы Delphi 10 30.04.2009 08:14
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши Aravild Компоненты Delphi 1 31.01.2009 16:28
Клик мыши stayer Общие вопросы Delphi 1 30.10.2008 19:53