C # рдореЗрдВ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рдЫрд╡рд┐

рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдорд╛рдирдХ рд╡реЗрдмрдмреНрд░реЛрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдХрдИ рдХрд╛рд░рдг рдереЗ:
1. рдПрдХ IE рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдордЬрдмреВрдд рддрд░реНрдХ рд╣реИред
2. рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд╡рдХреНрд░ рдХрд╛рд░реНрдпред
3. рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рдХрдореАред
4. рдпрджрд┐ рдЖрдк рдПрдХ рдорд╢реАрди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ IE6 рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рднреА "рдлрд╛рдпрджреЗ" рдЖрд╡реЗрджрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рд╢реБрд░реВ рдХреА рдЧрдИред
2 рдПрд╕рдбреАрдХреЗ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИред xulrunner (рдореЛрдЬрд╝рд┐рд▓рд╛) рдФрд░ Awesomium (рдХреНрд░реЛрдо)

рджреЛрдиреЛрдВ рдХрд╛ рд╕рдВрдмрдВрдз рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рджреЛрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред


рдЫрд╡рд┐
1. xulrunner
рдЪрд░рдг 1
рд╣рдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдиреЗрдВ рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг, рднрд╛рд░реА рдпрд╣ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1.9v рдХрд╛ рд╡рдЬрди 21MB рд╣реИред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 19v рдХрд╛ рд╡рдЬрди 32MB рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдПрд╕рдбреАрдХреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдерд╛ред

рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рд╣рдо рдЪрдпрдирд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ sdk / xulrunner-XXen-US.win32.sdk.zip

рдЪрд░рдг 2
рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдбреИрдбреА рдмрд┐рди рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИред рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ xulrunner рдХрд╛ рдирд╛рдо рджреЗрдВред рдирд╛рдо рдПрдХ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдХрд┐ рдореЗрд░реЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╛рдо рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдЪрд░рдг 3
рдЗрд╕ SDK рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Skybound.GeckoFX.bin.v1.9.1.0 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред http://code.google.com/p/geckofx/
рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп xulrunner рд╕рдВрд╕реНрдХрд░рдг 1.9 рдЪрд▓рд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ Skybound.GeckoFX 2.0 рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдЪрд░рдг 4
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рдВрджрд░реНрдн рдореЗрдВ Skybound.Gecko.dll рдЬреЛрдбрд╝реЗрдВ

рдЪрд░рдг 5
рдХрдХреНрд╖рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form2()); } } 


рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ:
 string path = "C:\\Program Files (x86)\\xulrunner\\"; //      bin   SDK Skybound.Gecko.Xpcom.Initialize(path); webBrowser1 = new Skybound.Gecko.GeckoWebBrowser(); webBrowser1.Parent = this.panel1; webBrowser1.Dock = DockStyle.Fill; string u = "http://www.ya.ru"; //   webBrowser1.Navigate(u); 

рдЗрд╕ рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореВрд▓ рдкреИрдирд▓ рдкреИрдирд▓ 1 рд╣реЛрдЧрд╛

рдЪрд░рдг 6
рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╛ рддреЛ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рдФрд░ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЬреЛ рдПрдХрдорд╛рддреНрд░ рд░рд╛рд╕реНрддрд╛ рдорд┐рд▓рд╛ рд╡рд╣ рдерд╛:

 webBrowser1.Navigate("javascript:ImGecko()"); 


рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ () рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдиреЗ рдореБрдЭреЗ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдПрдЬрд╝реЛрдорд┐рдпрдо рдореЗрдВ рдЖ рдЧрдпрд╛

рдЫрд╡рд┐

2. рдЕрд╡реЗрд╢рд┐рдпрдо
рдЪрд░рдг 1
рдПрд╕рдбреАрдХреЗ рдХреЛ http://awesomium.com/ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рд╕рд╛рдЗрдЯ рдкрд░ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ - рд╕реНрдерд┐рд░ (1.6.5) рдФрд░ рдкрд░реАрдХреНрд╖рдг (1.7)ред рдкрд░реАрдХреНрд╖рдг рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рдЪрд╛рд╣рд┐рдП
Awesomium.Core.dll
Awesomium.dll
Awesomium.Windows.Controls.Design.dll
Awesomium.Windows.Controls.dll
Awesomium.Windows.Forms.dll

рдЪрд░рдг 2
рд╣рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ
Awesomium.Core.dll
Awesomium.Windows.Forms.dll

рдЪрд░рдг 3
рдЯреВрд▓рдмреЙрдХреНрд╕ рдореЗрдВ, рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЖрдЗрдЯрдо рдЪреБрдиреЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Awesomium.Windows.Forms.dll рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирдП рдирд┐рдпрдВрддреНрд░рдг WebControl, рдкрддрд╛рдмреЙрдХреНрд╕ рдЖрджрд┐ рд╣реЛрдВрдЧреЗред WebControl рд╣рдорд╛рд░реА рдкрд╣рд▓реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ

рдЪрд░рдг 4
рд╣рдо рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрддреЗ рд╣реИрдВ

рдЪрд░рдг 5
рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгред

рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда
 webControl1.LoadURL("http://ya.ru"); 


рдХреБрдХреАрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
 string cookie; //   cookie    string domen; //  string[] mascook; mascook = cookie.Split(';'); Awesomium.Core.WebCore.ClearCookies(); foreach (string cook in mascook) Awesomium.Core.WebCore.SetCookie("http://" + domen, cook + "; domain=" + domen, true, true); 


рдЪрд░ рдПрдордПрдХреНрд╕ рдФрд░ рдореЗрд░реЗ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  Awesomium.Core.JSValue x = webControl1.ExecuteJavascriptWithResult("mx", 500); Awesomium.Core.JSValue y = webControl1.ExecuteJavascriptWithResult("my", 500); 

500 рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИред

рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓

 webControl1.CallJavascriptFunction("", "al", new Awesomium.Core.JSValue[] {}); 


рдЕрд▓ рдлрдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ
рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдорд╛рди рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЦрд╛рд▓реА рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг Awesomium 1.6.5 рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдг 1.7 рдореЗрдВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдХреБрдЫ рддрд░реАрдХреЗ рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╣реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖
рдлрд┐рд▓рд╣рд╛рд▓, рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдореИрдВ рдПрд╡реЗрд╕рдорд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз рд╣реИред рдЗрд╕рд╕реЗ рднрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИред рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд▓реИрд╢ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЕрднреА рдкрддрд╛ рдирд╣реАрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рд╣реИ)ред рдЕрдиреНрдпрдерд╛, рдЗрд╕ рдПрд╕рдбреАрдХреЗ рдиреЗ рдореБрдЭреЗ рд╣рд░ рдЪреАрдЬ рдореЗрдВ рдЕрдиреБрдХреВрд▓ рдмрдирд╛ рджрд┐рдпрд╛ред

Source: https://habr.com/ru/post/In170015/


All Articles