Эмуляция прокрутки колеса мыши

galex

Client
Регистрация
14.01.2014
Сообщения
50
Благодарностей
2
Баллы
8
Нашел в сети код эмуляции прокрутки колеса мыши на C#
Код:
using System.Runtime.InteropServices;
namespace MOUSE
{
    public partial class Form1 : Form
    {
        [DllImport("user32.dll", SetLastError = true)]
        public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
        public Form1()
        {
            InitializeComponent();
        }
        private void button5_Click(object sender, EventArgs e)
        {
            int u = -120; //крок прокрутки якщо додатнє то в гору, відємне то в низ
            mouse_event((uint)MouseEventFlags.MouseWheel, 0, 0, unchecked((uint)u), 0);
        }
    }
    [Flags]
    public enum MouseEventFlags
    {
        LeftDown = 0x00000002,
        LeftUp = 0x00000004,
        MiddleDown = 0x00000020,
        MiddleUp = 0x00000040,
        Move = 0x00000001,
        Absolute = 0x00008000,
        RightDown = 0x00000008,
        RightUp = 0x00000010,
        MouseWheel = 0x0800
    }
}
подскажите, пожалуйста, что с ним не так.. почему не работает в ZP?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
скрипт конечно не полный, но даже если кто его и допилит, окно не будет прокручиваться. Да и вобще это не нужно. Все крутится джаваскриптом (кроме флеша), а в последней версии и зенкой.
 

galex

Client
Регистрация
14.01.2014
Сообщения
50
Благодарностей
2
Баллы
8

galex

Client
Регистрация
14.01.2014
Сообщения
50
Благодарностей
2
Баллы
8
LexxWork большое спасибо за ссылки.

...ума не приложу как прикрутить скрипты к ZP.
Буду очень признателен за пример реализации плавной прокрутки.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
ищите на форуме по словам javascript + вставить. Я бы сделал, но только для Вас и небесплатно. Ждите пока кто нибудь выдаст 100% готовое решение - такое вполне реально.
 

zombie

Client
Регистрация
14.08.2012
Сообщения
480
Благодарностей
119
Баллы
43
tab.MainDocument.EvaluateScript("javascript:scrollTo(0,0)");

первая цифра горизонтальный скролл (первый 0), 2-ой соответственно вертикальный.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Чтобы не плодить темы напишу здесь.
Столкнулся с проблемой прокрутки. Всплывающее окно, в котором и требуется осуществлять прокрутку, реализовано на скриптах. Focus на самом нижнем элементе, {PGDN} и {END}, ScrollIntoView, равно как и предложенные тут способы не работают. Единственное, что более-менее работает - это прокрутка эмуляцией мыши, но такая прокрутка занимает очень много времени. Когда крутишь колесом на реальной мышке строки прокручиваются десятками, а когда эмулируешь перетаскивание скроллбара - единицами. При этом заметил странность - если в экшене эмуляции мыши спользовать значения превышающие размеры дива - прокруткв вообще не происходит. А если соблюдать размеры дива - прокручивается, но не полностью, а только до половины.

Подскажите, пожалуйста, в каком направлении копать.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
как делал бы я:
если нужно выпарсить список, я бы вытащил его через запросы.
если жесткий код для проскролить есть специальный метод в джаваскрипте (не в зенке)
если нужно кликнуть куда нибудь я бы просто подменил видимый елемент на нужный мне и кликнул бы на него
 
  • Спасибо
Реакции: zortexx

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
как делал бы я:
если нужно кликнуть куда нибудь я бы просто подменил видимый елемент на нужный мне и кликнул бы на него
Как раз пытаюсь сделать что-то подобное. Можете подсказать, каким оператором в C# это можно сделать?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
допустим у тебя есть ряд дивов
<div value='1'></div>
....
<div value='n'></div>
div со значением n где-то далеко или вобще не подгружен. через экешен установить значение меняешь у видимого дива все значения на такие какие нужно тебе и кликаешь на него. В этом примере можно value=1 установить value=n
 
  • Спасибо
Реакции: sibbora

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
А где вообще стандартный экшн прокрутки колесом мышки или его нет и прокрутка колесом делается через костыли?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

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