GeckoWebBrowser Object Plugin

Ejemplos y plantillas para Autoplay Media Studio.
Imagen GeckoWebBrowser Object Plugin


Hola a todos y Feliz Año nuevo 2020. Les traigo un nuevo Plugin para ustedes. Este Plugin es un navegador web
basado en el motor Gecko, el cual este motor lo está implementado en el navegador Mozilla Firefox.
Todos sabemos que cuando quieres hacer tu propio navegador, se utiliza Internet Explorer porque es el
navegador que está predeterminado en el Windows. Con este Plugin ya no dependerán de Internet Explorer.


Imagen



funciones:

GeckoWebBrowser.CanGoBack()
GeckoWebBrowser.CanGoForward()
GeckoWebBrowser.ExecuteCommand()
GeckoWebBrowser.Find()
GeckoWebBrowser.GetDocumentBody()
GeckoWebBrowser.GetDocumentCharacterSet()
GeckoWebBrowser.GetDocumentCookie()
GeckoWebBrowser.GetDocumentHead()
GeckoWebBrowser.GetDocumentTitle()
GeckoWebBrowser.GetDocumentType()
GeckoWebBrowser.GetDomain()
GeckoWebBrowser.GetScrollPos()
GeckoWebBrowser.GetStatusText()
GeckoWebBrowser.GetURL()
GeckoWebBrowser.GoBack()
GeckoWebBrowser.GoForward()
GeckoWebBrowser.Initialize("Plugin1")
GeckoWebBrowser.isNavigationError()
GeckoWebBrowser.LoadHTML("<html><body><h1>Hello World</h1></body></html>")
GeckoWebBrowser.Navigate("www.google.com")
GeckoWebBrowser.Print()
GeckoWebBrowser.ReadyState()
GeckoWebBrowser.Refresh()
GeckoWebBrowser.Reload()
GeckoWebBrowser.SaveDocument()
GeckoWebBrowser.SelectAll()
GeckoWebBrowser.SetEnabled(true)
GeckoWebBrowser.SetScrollPs(0, 0)
GeckoWebBrowser.SetVisible(true)
GeckoWebBrowser.ShowpageProperties()
GeckoWebBrowser.Stop()
GeckoWebBrowser.ViewSource("www.myweb.com")

Agradecimiento(s):
Imagen Dripro
Le agradezco a Dripro por darme la razón y la necesidad de hacer este Plugin.

Les dejo el LINK de Descarga:
:downvote-1417755753:
HIDE: ON
Hidebb Message Hidden Description
Thank you friend :friends:
teşekkürler
tnks bro :yes: :yes:
hello plugin sido muy bueno solo da error y prepara un ejemplo más detallado. gracias :)
Gracias por comentar. Creo que he corregido el error.

Para que funcione tienen que extaer todo el contenido del archivo GeckoEngine.zip y copiarlo a la raíz del proyecto.

Por favor diganme si da errores para seguir corrigiendo. Diganme que tipo de errores les sale.

HIDE: ON
Hidebb Message Hidden Description
thnk you so much bro <3
hola puedes hacer eso? con este complemento?

Imagen
graCIAS
lazkopat escribió:
28 Dic 2019 11:34
hola puedes hacer eso? con este complemento?

Imagen
En estos momentos estoy mejorando la compatibilidad del Plugin para Windows 10 que realmente no lo tuve en cuenta.
Pero puedo añadir la opción que me comentaste. Saludos
electrobyte escribió:
29 Dic 2019 00:03
lazkopat escribió:
28 Dic 2019 11:34
hola puedes hacer eso? con este complemento?

Imagen
En estos momentos estoy mejorando la compatibilidad del Plugin para Windows 10 que realmente no lo tuve en cuenta.
Pero puedo añadir la opción que me comentaste. Saludos
Mientras pruebes probar lo siguiente:

Código: Seleccionar todo

<!DOCTYPE html>
<html>
   <body
      <input value="hello world!" name="msg" id="msg" type="text">
   </body>
</html>

Código: Seleccionar todo

GeckoWebBrowser.Navigate(javascript:void(alert(document.getElementById("msg").value)))
Al ejecutar esta línea, te debe salir un diálogo mostrándote el texto del input.
Con esta opción sólo puedes ejecutar un código de javascript pero no te retornará ningún valor.


Ahora estoy habilitando una función para obtener un resultado al ejecutar un código en javascript
Saludos.
-(-_-)-
¿Dónde está el error?


Imagen

Imagen
En C:\Program Files\AutoPlay Media Studio 8\Plugins\Objects\GeckoWebBrowser
solo debes dejar los archivos:
GeckoWebBrowser.apo
GeckoWebBrowser.ico
GeckoWebBrowser.lic
Help.chm

Y los demás archivos lo depositas en el proyecto en donde estás trabajando (junto con el autorun.exe, lua51.dll, lua5.1.dll)
Hice lo que dijiste y nuevamente da el mismo error. :(
HIDE: ON
Hidebb Message Hidden Description
hola ahora da tal error :)

Imagen
Ejecuta el autorun.exe como Administrador.

Sino abre el archivo .autoplay del proyecto y ve a:

Settings -> Advanced -> Requested User Privilege Level -> Highest available

Luego me dices si te funcionó.
Buenas, aunque me parece muy buena idea usar gecko/xulrunner como motor web, he probado casi todos los navegadores que se pueden pensar, desde IE con artefactos para usar EDGEHTML, he usado xulrunner, chrome mediante CEF, y un largo etc de proyectos más pequeños, yo me decidi a usar un proyecto chino llamado miniblink, que supera en rendimiento e integracion a todos los que he probado, menos CEF, pero claro pesa muchisimo menos.

El codigo lleva en el repo desde hace unos meses:

https://bitbucket.org/pabloko/miniblinkams/src/master/

No lo he publicado por un motivo muy simple, a partir de el Q2 de este año, microsoft va a actualizar EDGE por la nueva version con motor Chromium, de hecho ya se puede bajar una beta desde aqui: https://www.microsoftedgeinsider.com/es-es/

El tema es que microsoft antes de sacar este browser ya tiene un api simple para embeder este browser mediante la interfaz WebView2: https://docs.microsoft.com/en-us/micros ... g/webview2

Por tanto, dentro de muy muy poco, cualquier windows 10 actualizado tendrá ya includo un motor de chromium que podremos usar en nuestros proyectos, eliminando la necesidad de BYOB (bring-your-own-browser)

En cuanto a mi version de miniblink, la integracion es mucho mas simple y facil, solo tiene una dll externa y no hace falta colocarla en un sitio como el root, y tiene interoperabilidad total de js con lua, es decir, si una funcion javascript retorna un array y se llama mediante api, retornara la misma info en una tabla lua y viceversa. Revisad el codigo que tiene chicha... por poner un ejemplo:
a = WKE.RunJS("Plugin1", "return {\"ayy\":\"lmao\"};") --ejecutamos js y cargamos su resultado (js object) que se convierte en lua table
Dialog.Message("", tostring(a["ayy"])) --escribe "lmao"
Imagen

En cuanto a funciones y eventos:

WKE

Código: Seleccionar todo

{ "GetTitle", lua_wke_gettitle },
{ "CanGoBack", lua_wke_cangoback },
{ "GoBack", lua_wke_goback },
{ "Resize", lua_wke_resize },
{ "GetWidth", lua_wke_getwidth },
{ "GetHeight", lua_wke_getheight },
{ "GetContentWidth", lua_wke_getcontentwidth },
{ "GetContentHeight", lua_wke_getcontentheight },
{ "CanGoForward", lua_wke_cangoforward },
{ "GoForward", lua_wke_goforward },
{ "EditorSelectAll", lua_wke_selectall },
{ "EditorUnSelect", lua_wke_unselect },
{ "EditorCopy", lua_wke_copy },
{ "EditorCut", lua_wke_cut },
{ "EditorDelete", lua_wke_delete },
{ "EditorUndo", lua_wke_undo },
{ "EditorRedo", lua_wke_redo },
{ "GetCookie", lua_wke_getcookie },
{ "SetCookie", lua_wke_setcookie },
{ "SetMediaVolume", lua_wke_setmediavolume },
{ "GetMediaVolume", lua_wke_getmediavolume },
{ "FireMouseEvent", lua_wke_firemouseevent },
{ "FireMouseWheelEvent", lua_wke_firemousewheelevent },
{ "FireKeyUpEvent", lua_wke_firekeyupevent },
{ "FireKeyDownEvent", lua_wke_firedownevent },
{ "FireWindowsMessage", lua_wke_firewindowsmessage },
{ "SetFocus", lua_wke_setfous },
{ "KillFocus", lua_wke_killfocus },
{ "RunJS", lua_wke_runjs },
{ "GlobalExec", lua_wke_globalexec },
{ "Sleep", lua_wke_sleep },
{ "Wake", lua_wke_wake },
{ "IsAwake", lua_wke_isawake },
{ "SetZoomFactor", lua_wke_setzoomfactor },
{ "GetZoomFactor", lua_wke_getzoomfactor },
{ "SetEditable", lua_wke_seteditable },
{ "GetCursorInfoType", lua_wke_getcursorinfotype },
{ "GetWindowHandle", lua_wke_getwindowhandle },
{ "ShowWindow", lua_wke_showwindow },
{ "EnableWindow", lua_wke_enablewindow },
{ "MoveWindow", lua_wke_movewindow },
{ "SetDeviceParameter", lua_wke_setdeviceparameter },
{ "SetMouseEnabled", lua_wke_setmouseenabled },
{ "SetNavigationToNewWindowEnable", lua_wke_setnavigationtonewwindowenable },
{ "SetCspCheckEnable", lua_wke_setcspcheckenable },
{ "SetNpapiPluginsEnabled", lua_wke_setnpapipluginsenabled },
{ "SetDebugConfig", lua_wke_setdebugconfig },
{ "SetUserAgent", lua_wke_setuseragent },
{ "GetUserAgent", lua_wke_getuseragent },
{ "LoadURL", lua_wke_loadurl },
{ "LoadHTML", lua_wke_loadhtml },
{ "LoadHtmlWithBaseUrl", lua_wke_loadhtmlwithbaseurl },
{ "LoadFile", lua_wke_loadfile },
{ "GetURL", lua_wke_geturl },
{ "LuaEnabled", lua_wke_luaenabled },
{ "SetProxy", lua_wke_setproxy },
{ "BindFunction", lua_wke_jscallback },
{ "Stop", lua_wke_stop },
{ "Reload", lua_wke_stop },
{ "ShowDevTools", lua_wke_showdevtools },
{ "GetCookiesEnabled", lua_wke_getcookiesenabled },
{ "SetCookiesEnabled", lua_wke_setcookiesenabled },
{ "SetLocalStoragePath", lua_wke_lspath },
{ "SetCookiePath", lua_wke_cpath },
{ "EditorPaste", lua_wke_paste },
{ "BindGetter", lua_wke_jsgetter },
{ "BindSetter", lua_wke_jssetter },
JS

Código: Seleccionar todo

{ "ArgCount", lua_js_argcount },
{ "ArgType", lua_js_argtype },
{ "Arg", lua_js_arg },
{ "TypeOf", lua_js_typeof },
{ "Is", lua_js_is },
{ "To", lua_js_to },
{ "New", lua_js_new },
{ "GetArrayBuffer", lua_js_gab },
{ "Invoke", lua_js_invoke },
{ "Call", lua_js_call },
{ "Get", lua_js_get },
{ "Set", lua_js_set },
{ "GetAt", lua_js_getat },
{ "SetAt", lua_js_setat },
{ "GetKeys", lua_js_getkeys },
{ "GetLength", lua_js_getlength },
{ "SetLength", lua_js_setlength },
{ "Throw", lua_js_throw },
EVENTS

Código: Seleccionar todo

"OnPreload" ""
"OnConsole" "string e_Message, number e_Level, string e_SourceName, number e_SourceLine, string e_StackTrace"
"OnAlert" "string e_Msg"
"OnTitleChanged" "string e_Title"
"OnURLChanged" "string e_Url"
"OnConfirmBox" "string e_Msg, *bool e_Confirm"
"OnPromptBox" "string e_Msg, string e_DefaultResult, *string e_Result, *bool e_Cancel"
"OnNavigation" "string e_Url, number e_Type, *bool e_Confirm"
"OnDocumentReady" ""
"OnDownload" "string e_Url, *bool e_Confirm"
No tiene mucho sentido hacer release de este complemento porque pronto va a estar disponible edge con similar funcionalidad... pero si alguien lo quiere probar:

HIDE: ON
Hidebb Message Hidden Description