ПредишенСледващото

Използването на гущер в C # geckofx, новини блог - статия на C #, PHP, Delphi, Freeware
Не всеки е доволен от стандартните двигатели в Windows IE. Но, за щастие, има много алтернативни двигатели за C #. Gecko е един от тях и в този пост ще опиша как да използвате GeckoFx в техните проекти.

Източници могат да бъдат намерени в края на статията.

По време на това писание, най-новата версия на GeckoFx за C # е 22. Дълго време не сте обновили и могат проекта умира, но дори и на 22 версия е по-добре IE. Така че започнете 🙂

Напишете програма, която ще отиде в главната страница на Google. въведете някакъв въпрос и да се придвижвате през произволен сайт в SERP.
Създаване на нов проект (Application Windows Forms), ние го наричаме «GeckoExample«, преименувате основната форма «FrmMain«, размерът на основната форма = 514; 399.

За работа, ние трябва:

Сега, на работа е създадена Добавяне на връзки към Geckofx-Core.dll и Geckofx-Winforms.dll.

Използването на гущер в C # geckofx, новини блог - статия на C #, PHP, Delphi, Freeware
Хвърли да формират Panel (Име = pnl1, Местоположение = 0, 0, Размер = 495; 25) за панел бутон Добавяне на (име = «btnStart», Местоположение = 0, 0, Размер = 75, 23, Text = започне) , в непосредствена близост до текст полето на хвърлей (Име = «tbUrl», местоположение = 84; 2, Размер = 244; 20).

Свойствата на проекта са преминаването крайната платформа на x86.

Използването на гущер в C # geckofx, новини блог - статия на C #, PHP, Delphi, Freeware
Сега започнете да пишете код.
В основната форма клас използване свързване:

Това е един пример, така че се очаква известна гъвкавост (директно да копирате и се управлява, ако е необходимо) от него, не го правят 😉
Въз основа на размерите, а след това аз не мисля, че е трудно да се постави точка след this._webBrowser и виж какво този обект е, полетата и методите.
Сред тях има области като Височина (височина) и ширина (широчина), чрез който да се регулира размерът на контролера. Вие също трябва да зададете Anchor имота в AnchorStyles.Left | AnchorStyles.Top. защото в примера с помощта на анкери (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom) Контрольори "вкопчил" до всички краища на формата.

Точно така. Благодарим Ви!
Документация, както аз го разбирам, там е до него, дори и на английски език?

Не документация. След като намери примери (за версията 16, вид) на английски език.
Така че методът на научните върхове на таксита 🙂

Виждам, че са много добре направено с Geckofx. Кажете ми, ако знаете. Чрез имот geckoWebBrowser1.Document имаме достъп до документ, който вече е бил разбор на двигателя. Но има случаи, когато оригиналният сорс кода на уеб страници от сървъра не съвпада OuterHtml. Въпреки че двигателят и правото показва на страницата, geckoWebBrowser1.Document имот вече са загубили някои данни и нямат достъп до тях. ако го направите geckoWebBrowser1.Navigate ( «оглед-източник:» + URL); кода без загуби, но на първо място тя се показва на страницата, че не винаги е необходимо, и на второ място се изисква от сървъра отново, а в други е просто изглежда добре, както и достъп до документ на HTML как? OuterHtml той няма да бъде оригинален, да бъдат добавени към проектиране оформление за изход код. Надявам се, че разбирате какво искам да знам. Благодаря предварително.

Аз не знам как да получите оригиналния код, който дава на сървъра, като се използват GeckoFx. защото какъв е смисълът на плъзгане на dviglo е, ако искате да получите код (но без да показва и т.н.), което дава на сървъра? За такива цели там WebClient 🙂

Благодаря за отговора. Извършва dviglo има смисъл в определени ситуации. Целта на използването му в определен въпрос не е била да получите програмния код, двигателят се използва за други цели. Само в паралел и възникна въпрос, че софтуерът за обработка на данните от страницата. За съжаление поради лоша документация, защото не намери отговор. Съгласете се, след като все още се използва двигателя, и глупаво в Коста достъпен чрез WebClient, когато съответната страница вече е получил и дисплей двигателя. Добре, нека търсим, може би не всичко е загубено.

В Коста програмиране необходими почти постоянно 😉 От Не всички в празното са желани функционален / работа, както е необходимо.
Е, всеки порт (dopilivat) този двигател с най-предпочитания и поет. Но това ще отнеме много повече време, отколкото да се изгради една патерица.

Можете също да опитате да попитам тези, които са пренесли dviglo тук.
PS За сметка на оглед код. Можете да мамят и да получите достъп до кода така:
_webBrowser.Navigate ( "изглед код: someurl");
низ HTML = _webBrowser.Document.GetElementsByTagName ( "HTML") [0] .TextContent;
На теория, би трябвало да работи 🙂

Просто не е просто отваряне на прозореца, но и след изпращане на заявка и затова съобщава за грешка.
Тук е необходимо да се седне и да се копае (и Google :)), аз сега имам време да го направя там, зает с други проекти.

Въпросът ми е странно. Не мога да разбера как си Sync? Откъде знаеш, че страницата е напълно progruz и той може да продължи да работи?
общ компонент уеббраузър проверих ReadyState, ако той завърши напред.
Но тук не мога да разбера, кажи ми, а?)

Аз просто не са намерили таймер и в зависимост от натоварването. тя променя само променлива, и казва, че страницата е заредена в 2 секунди? и ако тя не е имал време да се зареди през това време?
или аз съм липсва нещо?

В този пример, таймер, за да реши дали да се зареди страницата 🙂 Същият този пример, мързел беше нещо "мега готино" за един прост пример, за да се направи.
И ако тя не е имал време да се зареди, работата не се пристъпи към зарежда страницата.

Да, аз го получи. Благодаря.
и дори може да каже от коя страна на компонента, в която е решен по-просто, когато методите moposchi и свойства?

издаване на стандартен уеб браузър, който е защо той не се претоварвайте съдържанието на документа, а не на всички. (И двете зарежда след първата навигация и всички)
Разбирам, в Gecko това всичко е ОК, това е просто трябва да се синхронизира с патерици?

Опиша по-долу, че нито един от компонент (с когото са срещнали 🙂) не може да бъде един и същ метод / събитие за определяне на пълното натоварване страница (дори и в Делфи 7 и по този боклук могат да се опита повече от един куп компоненти). Дори един обикновен браузър (Chrome, Fox) не мога да направя 🙂
А патерица с изтеглянето достатъчно проста: да се използват таймер и проверка на имотите IsBusy. Таймер "Завод" в, например, на 10 секунди, когато таймерът задействани варира променлива _loading да лъжа.
И в начина на отваряне на връзките, където има очакване за зареждане на страницата, направете прост цикъл:
докато (_wb.IsBusy # 038; _loading)
// изчакване
>
_loadingTimer.Stop ();
// работа със страницата

Използвайте таймер във всеки случай, че е необходимо, тъй като може някакъв скрипт на nafig ненужно брояч, който е зареден синхронно, "poveshat" страница (която винаги ще бъде заредена, или много дълго време) и в резултат на програмата ще чака като Hachiko 🙂

Е добре дошъл, тук, в Java работа, например:

Var събитие = document.createEvent ( "MouseEvents");
event.initMouseEvent (с щракване, вярно, вярно, прозорец, 1, 10, 10, 10, 10, фалшиви, неверни, фалшиви, неверни, 0, нула);
document.getElementById ( "idid) dispatchEvent (събитие) .;
>

Тук мисля, че за да се опита да шият в Геске. Опитах се да изпратите SendMessage всички Оказа се обаче, когато изключа приложението, което кликвания не са на всички сайтове. Причината е neizvesno, но направи прозрачен през нула форма, така че всичко да работи перфектно, без реално кликвания на мишката. Въпреки това, формата не крие много добре. Искам razobratsya какво sobsvenno случай. Ако имате време, за да се включат в намирането на решения на този проблем ..

Подкрепете проекта - споделете линка, благодаря!