Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№124-07-2010 17:45:54

Parliament
Участник
 
Группа: Members
Зарегистрирован: 24-07-2010
Сообщений: 4
UA: Opera 9.6

Эмуляция событий

Добрый день!
Пытаюсь сделать эмуляцию событий.
Код взят отсюда: http://forum.mozilla-russia.org/viewtopic.php?id=26616.
Я дописал недостающие интерфейсы. Пишу на C#.

Вставил код прямо в исходники компонента geckofx, подправил что надо.

Вот часть кода:

Выделить код

Код:

Skybound.Gecko.nsIDOMAbstractView window = Skybound.Gecko.Xpcom.QueryInterface<Skybound.Gecko.nsIDOMAbstractView>(this.Window.DomWindow);

Skybound.Gecko.nsAString st = new Skybound.Gecko.nsAString("click");
            me.InitMouseEvent(st, true, true, window,
                0, 0, 0, 0, 0, false, false, false, false, 0, null);

И вот шарпик на меня ругается:
Ошибка    2    Аргумент "4": преобразование типа из "Skybound.Gecko.nsIDOMAbstractView" в "System.IntPtr" невозможно    D:\VC_Project\Skybound.GeckoFX.src.v1.9.0.0\src\Skybound.Gecko\GeckoWebBrowser.cs    435    47    Skybound.Gecko

С объектом window что то нето. Немогу понять как тогда работает код которые выше по ссылке.

Отсутствует

 

№226-07-2010 00:17:30

Parliament
Участник
 
Группа: Members
Зарегистрирован: 24-07-2010
Сообщений: 4
UA: Opera 9.6

Re: Эмуляция событий

На ссылке: http://forum.mozilla-russia.org/viewtopic.php?id=26616
Не видно что используется указатель.
Так как оригинальный метод:

Выделить код

Код:

void InitMouseEvent(nsAString typeArg, bool canBubbleArg, bool cancelableArg, IntPtr /*nsIDOMAbstractView*/ viewArg, int detailArg, int screenXArg, int screenYArg, int clientXArg, int clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, ushort buttonArg, nsIDOMEventTarget relatedTargetArg);

Проблема решилась изменением четвертого параметра:

Выделить код

Код:

void InitMouseEvent(nsAString typeArg, bool canBubbleArg, bool cancelableArg, nsIDOMAbstractView viewArg, int detailArg, int screenXArg, int screenYArg, int clientXArg, int clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, ushort buttonArg, nsIDOMEventTarget relatedTargetArg);

Странно, но работает.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]