If you want to use the WebGadget, you always have the problem under Windows that Internet Explorer 7 is used by default.
With Internet Explorer 7 you cannot display many websites without Javascript errors. Also HTML5 and CSS3 are not supported.
It is always necessary to make a setting in the registry for your own program.
Under Linux you don't have the problem because the WebKit engine is used there.
If you also want to use the WebKit engine under Windows, you can use my library and display any modern website without errors.
Functions:
- WebGadgetEx()
- Syntax:
Code: Select all
Result = WebGadgetEx(ID, X, Y, Width, Height, URL$, ParentWindowID, @ErrorOutput$)
- Description: Creates a WebGadget with the WebKit engine.
- Parameter:
- ID: A unique number for the gadget. #PB_Any can be used to generate the number automatically.
- X: Defines the position.
- Y: Defines the position.
- Width: Sets the width.
- Height: Sets the height.
- URL$: The address of the website you want to open.
- ParentWindowID: Specifies the target window in which the gadget will be created.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful. If #PB_Any is used, the ID is returned.
- Example :
Code: Select all
EnableExplicit Global PBEx_WebGadget #PBEx_WebGadgetEx_Version$ = "1.1.5.0" #PB_Web_Zoom = 100 #PB_Web_EnableDrop = 101 #PB_Web_StatusCode = 9 #PB_Web_AllText = 5 #PB_Web_SelectAll = 5 #PB_Web_Print = 6 CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 PBEx_WebGadget = OpenLibrary(#PB_Any, "PB.Ex_WebGadget_x86.dll") CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 PBEx_WebGadget = OpenLibrary(#PB_Any, "PB.Ex_WebGadget_x64.dll") CompilerEndIf If PBEx_WebGadget Prototype WebGadgetEx(ID, X, Y, Width, Height, URL.p-Unicode, ParentWindowID, ErrorOutput) Global WebGadgetEx.WebGadgetEx = GetFunction(PBEx_WebGadget, "WebGadgetEx") Prototype SetWebGadgetExText(ID, URL.p-Unicode, ErrorOutput) Global SetWebGadgetExText.SetWebGadgetExText = GetFunction(PBEx_WebGadget, "SetWebGadgetExText") Prototype GetWebGadgetExText(ID, Output, ErrorOutput) Global GetWebGadgetExText.GetWebGadgetExText = GetFunction(PBEx_WebGadget, "GetWebGadgetExText") Prototype SetWebGadgetExState(ID, State, ErrorOutput) Global SetWebGadgetExState.SetWebGadgetExState = GetFunction(PBEx_WebGadget, "SetWebGadgetExState") Prototype SetWebGadgetExItemText(ID, Entry, Text.p-Unicode, ErrorOutput) Global SetWebGadgetExItemText.SetWebGadgetExItemText = GetFunction(PBEx_WebGadget, "SetWebGadgetExItemText") Prototype GetWebGadgetExItemText(ID, Entry, Output, ErrorOutput) Global GetWebGadgetExItemText.GetWebGadgetExItemText = GetFunction(PBEx_WebGadget, "GetWebGadgetExItemText") Prototype FreeWebGadgetEx(ID, ErrorOutput) Global FreeWebGadgetEx.FreeWebGadgetEx = GetFunction(PBEx_WebGadget, "FreeWebGadgetEx") Prototype IsWebGadgetEx(ID, ErrorOutput) Global IsWebGadgetEx.IsWebGadgetEx = GetFunction(PBEx_WebGadget, "IsWebGadgetEx") Prototype WebGadgetExWidth(ID, ErrorOutput) Global WebGadgetExWidth.WebGadgetExWidth = GetFunction(PBEx_WebGadget, "WebGadgetExWidth") Prototype WebGadgetExHeight(ID, ErrorOutput) Global WebGadgetExHeight.WebGadgetExHeight = GetFunction(PBEx_WebGadget, "WebGadgetExHeight") Prototype WebGadgetExX(ID, ErrorOutput) Global WebGadgetExX.WebGadgetExX = GetFunction(PBEx_WebGadget, "WebGadgetExX") Prototype WebGadgetExY(ID, ErrorOutput) Global WebGadgetExY.WebGadgetExY = GetFunction(PBEx_WebGadget, "WebGadgetExY") Prototype WebGadgetExID(ID, ErrorOutput) Global WebGadgetExID.WebGadgetExID = GetFunction(PBEx_WebGadget, "WebGadgetExID") Prototype HideWebGadgetEx(ID, State, ErrorOutput) Global HideWebGadgetEx.HideWebGadgetEx = GetFunction(PBEx_WebGadget, "HideWebGadgetEx") Prototype ResizeWebGadgetEx(ID, X, Y, Width, Height, ErrorOutput) Global ResizeWebGadgetEx.ResizeWebGadgetEx = GetFunction(PBEx_WebGadget, "ResizeWebGadgetEx") Prototype HideWebGadgetExDevTools(ID, State, ErrorOutput) Global HideWebGadgetExDevTools.HideWebGadgetExDevTools = GetFunction(PBEx_WebGadget, "HideWebGadgetExDevTools") Prototype ExecuteWebGadgetExJavaScript(ID, Code.p-Unicode, Output, ErrorOutput) Global ExecuteWebGadgetExJavaScript.ExecuteWebGadgetExJavaScript = GetFunction(PBEx_WebGadget, "ExecuteWebGadgetExJavaScript") Prototype BindWebGadgetExJavaScript(ID, PBProcedureName.p-Unicode, PBProcedureHandle, PID, ErrorOutput) Global BindWebGadgetExJavaScript.BindWebGadgetExJavaScript = GetFunction(PBEx_WebGadget, "BindWebGadgetExJavaScript") Prototype GetWebGadgetExAttribute(ID, Attribute, ErrorOutput) Global GetWebGadgetExAttribute.GetWebGadgetExAttribute = GetFunction(PBEx_WebGadget, "GetWebGadgetExAttribute") Prototype SetWebGadgetExAttribute(ID, Attribute, Value, ErrorOutput) Global SetWebGadgetExAttribute.SetWebGadgetExAttribute = GetFunction(PBEx_WebGadget, "SetWebGadgetExAttribute") Prototype EnableRemoteDebugger(Port, ErrorOutput) Global EnableRemoteDebugger.EnableRemoteDebugger = GetFunction(PBEx_WebGadget, "EnableRemoteDebugger") Prototype SetWebGadgetExSetUserAgent(UserAgent.p-Unicode, ErrorOutput) Global SetWebGadgetExSetUserAgent.SetWebGadgetExSetUserAgent = GetFunction(PBEx_WebGadget, "SetWebGadgetExSetUserAgent") Prototype SetWebGadgetExProxy(Proxy.p-Unicode, ErrorOutput) Global SetWebGadgetExProxy.SetWebGadgetExProxy = GetFunction(PBEx_WebGadget, "SetWebGadgetExProxy") EndIf Define Output$ = Space(1000000) Define ErrorOutput$ = Space(128) Define IsDevTools = #True Procedure MyJSCallback(aaa) Debug "This procedure was executed from Javascript: " + PeekS(aaa) EndProcedure If OpenWindow(0, 0, 0, 1500, 1000, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ;SetWebGadgetExSetUserAgent("PureBasic Bot", @ErrorOutput$) ;SetWebGadgetExProxy("108.61.86.187:8080", @ErrorOutput$);https://www.proxy-list.download/HTTPS WebGadgetEx(1, 0, DesktopScaledY(60), DesktopScaledX(1500), DesktopScaledY(1000-60), "https://www.rsbasic.de", WindowID(0), @ErrorOutput$) ;WebGadgetEx(1, 0, DesktopScaledY(60), DesktopScaledX(1500), DesktopScaledY(1000-60), "https://www.whatismybrowser.com/detect/what-is-my-user-agent", WindowID(0), @ErrorOutput$) ;WebGadgetEx(1, 0, DesktopScaledY(60), DesktopScaledX(1500), DesktopScaledY(1000-60), "https://www.google.com", WindowID(0), @ErrorOutput$) ButtonGadget(2, 0, 0, 70, 30, "Back", 0) ButtonGadget(3, 70, 0, 70, 30, "Forward", 0) ButtonGadget(4, 140, 0, 70, 30, "Reload", 0) ButtonGadget(5, 210, 0, 70, 30, "Stop", 0) ButtonGadget(6, 280, 0, 70, 30, "Google", 0) ButtonGadget(7, 350, 0, 70, 30, "Own HTML", 0) ButtonGadget(8, 420, 0, 70, 30, "Get HTML", 0) ButtonGadget(10, 490, 0, 70, 30, "Get URL", 0) ButtonGadget(11, 560, 0, 150, 30, "Get size && position", 0) ButtonGadget(12, 710, 0, 70, 30, "Get ID", 0) ButtonGadget(13, 780, 0, 70, 30, "Hide", 0) ButtonGadget(14, 850, 0, 70, 30, "Show", 0) ButtonGadget(15, 920, 0, 70, 30, "Size", 0) ButtonGadget(16, 990, 0, 150, 30, "Show/Hide DevT.", 0) ButtonGadget(17, 1140, 0, 70, 30, "Execute JS", 0) ButtonGadget(18, 1210, 0, 70, 30, "BindProc", 0) ButtonGadget(19, 1280, 0, 70, 30, "CallProc", 0) ButtonGadget(20, 1350, 0, 70, 30, "IsBusy?", 0) ButtonGadget(21, 1420, 0, 70, 30, "GetZoom", 0) ButtonGadget(22, 0, 30, 70, 30, "Zoom=200", 0) ButtonGadget(23, 70, 30, 70, 30, "StatusCode?", 0) ButtonGadget(24, 140, 30, 100, 30, "Get selected Text", 0) ButtonGadget(25, 240, 30, 70, 30, "Get all Text", 0) ButtonGadget(26, 310, 30, 70, 30, "Select all", 0) ButtonGadget(27, 380, 30, 70, 30, "Print", 0) SetWebGadgetExAttribute(1, #PB_Web_EnableDrop, 0, @ErrorOutput$) Repeat Select WaitWindowEvent() Case #PB_Event_Gadget Select EventGadget() Case 2 SetWebGadgetExState(1, #PB_Web_Back, @ErrorOutput$) Case 3 SetWebGadgetExState(1, #PB_Web_Forward, @ErrorOutput$) Case 4 SetWebGadgetExState(1, #PB_Web_Refresh, @ErrorOutput$) Case 5 SetWebGadgetExState(1, #PB_Web_Stop, @ErrorOutput$) Case 6 SetWebGadgetExText(1, "https://www.google.de", @ErrorOutput$) Case 7 SetWebGadgetExItemText(1, #PB_Web_HtmlCode, "<html><head></head><body><h1>Hello PureBasic Friends!</h1></body></html>", @ErrorOutput$) Case 8 GetWebGadgetExItemText(1, #PB_Web_HtmlCode, @Output$, @ErrorOutput$) Debug Output$ Case 10 GetWebGadgetExText(1, @Output$, @ErrorOutput$) Debug Output$ Case 11 Debug WebGadgetExWidth(1, @ErrorOutput$) Debug WebGadgetExHeight(1, @ErrorOutput$) Debug WebGadgetExX(1, @ErrorOutput$) Debug WebGadgetExY(1, @ErrorOutput$) Case 12 Debug WebGadgetExID(1, @ErrorOutput$) Case 13 HideWebGadgetEx(1, 1, @ErrorOutput$) Case 14 HideWebGadgetEx(1, 0, @ErrorOutput$) Case 15 ResizeWebGadgetEx(1, 100, 50, 200, 400, @ErrorOutput$) Case 16 IsDevTools ! #True HideWebGadgetExDevTools(1, IsDevTools, @ErrorOutput$) Case 17 ExecuteWebGadgetExJavaScript(1, "document.body.style.backgroundColor = " + Chr(34) + "#ff0000" + Chr(34), @Output$, @ErrorOutput$) ExecuteWebGadgetExJavaScript(1, "document.body.offsetHeight;", @Output$, @ErrorOutput$) Debug Output$ ;If you want to run modal dialogs like Alert(), please set the parameter "Output" to 0. ExecuteWebGadgetExJavaScript(1, "alert('Hello');", 0, @ErrorOutput$) Case 18 BindWebGadgetExJavaScript(1, "MyJSCallback", @MyJSCallback(), GetCurrentProcessId_(), @ErrorOutput$) Case 19 ExecuteWebGadgetExJavaScript(1, "(async function() { await CefSharp.BindObjectAsync('PBProcedure'); PBProcedure.call('MyJSCallback', 'Hello PureBasic'); })();", @Output$, @ErrorOutput$) Case 20 Debug GetWebGadgetExAttribute(1, #PB_Web_Busy, @ErrorOutput$) Case 21 Debug GetWebGadgetExAttribute(1, #PB_Web_Zoom, @ErrorOutput$) Case 22 SetWebGadgetExAttribute(1, #PB_Web_Zoom, 200, @ErrorOutput$) Case 23 Debug GetWebGadgetExAttribute(1, #PB_Web_StatusCode, @ErrorOutput$) ;Some status codes: ;0 = No error ;105 = Website not found ;3 = Load aborted ;118 = Timeout ;-All status codes here: https://cefsharp.github.io/api/63.0.0/html/T_CefSharp_CefErrorCode.htm Case 24 GetWebGadgetExItemText(1, #PB_Web_SelectedText, @Output$, @ErrorOutput$) Debug Output$ Case 25 GetWebGadgetExItemText(1, #PB_Web_AllText, @Output$, @ErrorOutput$) Debug Output$ Case 26 SetWebGadgetExState(1, #PB_Web_SelectAll, @ErrorOutput$) Case 27 SetWebGadgetExState(1, #PB_Web_Print, @ErrorOutput$) EndSelect Case #PB_Event_CloseWindow CloseLibrary(PBEx_WebGadget) End EndSelect ForEver EndIf
- Syntax:
- SetWebGadgetExText()
- Syntax:
Code: Select all
Result = SetWebGadgetExText(ID, URL$, @ErrorOutput$)
- Description: The address of the website you want to open.
- Parameter:
- ID: The number of the created gadget.
- URL$: The address of the website you want to open.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- GetWebGadgetExText()
- Syntax:
Code: Select all
Result = GetWebGadgetExText(ID, @Output$, @ErrorOutput$)
- Description: Determines the current address of the called website.
- Parameter:
- ID: The number of the created gadget.
- @Output$: The address of the website is stored in this variable.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- SetWebGadgetExState()
- Syntax:
Code: Select all
Result = SetWebGadgetExState(ID, State, @ErrorOutput$)
- Description: Performs an action.
- Parameter:
- ID: The number of the created gadget.
- State: One of the following actions can be used:
- #PB_Web_Back: One step back in the navigation history.
- #PB_Web_Forward: One step forward in the navigation history.
- #PB_Web_Refresh: Reload page.
- #PB_Web_Stop: Cancel the operation of a page that is still being loaded.
- #PB_Web_SelectAll: Marks all..
- #PB_Web_Print: Print the page.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- SetWebGadgetExItemText()
- Syntax:
Code: Select all
Result = SetWebGadgetExItemText(ID, Entry, Text$, @ErrorOutput$)
- Description: Performs an action.
- Parameter:
- ID: The number of the created gadget.
- Entry: One of the following actions can be used:
- #PB_Web_HtmlCode: Changes the page source text.
- Text$: The value for the action.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- GetWebGadgetExItemText()
- Syntax:
Code: Select all
Result = GetWebGadgetExItemText(ID, Entry, @Output, @ErrorOutput$)
- Description: Performs an action.
- Parameter:
- ID: The number of the created gadget.
- Entry: One of the following actions can be used:
- #PB_Web_HtmlCode: Returns the page source code.
- #PB_Web_SelectedText: Gets the selected text.
- #PB_Web_AllText: Gets the all texts.
- @Output: The value of the action is saved in the variable.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- FreeWebGadgetEx()
- Syntax:
Code: Select all
Result = FreeWebGadgetEx(ID, @ErrorOutput$)
- Description: Free the gadget.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- IsWebGadgetEx()
- Syntax:
Code: Select all
Result = IsWebGadgetEx(ID, @ErrorOutput$)
- Description: Checks if the gadget is still valid.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The gadget is valid.
- Syntax:
- WebGadgetExWidth()
- Syntax:
Code: Select all
Result = WebGadgetExWidth(ID, @ErrorOutput$)
- Description: Determines the width of the gadget.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value: The width of the gadget.
- Syntax:
- WebGadgetExHeight()
- Syntax:
Code: Select all
Result = WebGadgetExHeight(ID, @ErrorOutput$)
- Description: Determines the height of the gadget.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value: The height of the gadget.
- Syntax:
- WebGadgetExX()
- Syntax:
Code: Select all
Result = WebGadgetExX(ID, @ErrorOutput$)
- Description: Determines the position of the gadget.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value: The position of the gadget.
- Syntax:
- WebGadgetExY()
- Syntax:
Code: Select all
Result = WebGadgetExY(ID, @ErrorOutput$)
- Description: Determines the position of the gadget.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value: The position of the gadget.
- Syntax:
- WebGadgetExID()
- Syntax:
Code: Select all
Result = WebGadgetExID(ID, @ErrorOutput$)
- Description: Determines the handle number of the created gadget. The handle number can be used for WinAPI.
- Parameter:
- ID: The number of the created gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value: The handle number of the gadget.
- Syntax:
- HideWebGadgetEx()
- Syntax:
Code: Select all
Result = HideWebGadgetEx(ID, State, @ErrorOutput$)
- Description: Hides or displays the gadget.
- Parameter:
- ID: The number of the created gadget.
- State:
- 0: Show gadget.
- 1: Hide Gadget.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- ResizeWebGadgetEx()
- Syntax:
Code: Select all
Result = ResizeWebGadgetEx(ID, X, Y, Width, Height, @ErrorOutput$)
- Description: Changes the position and size of the gadget.
- Parameter:
- ID: The number of the created gadget.
- X: Change the position of the gadget. #PB_Ignore can be used to ignore the parameter.
- Y: Change the position of the gadget. #PB_Ignore can be used to ignore the parameter.
- Width: Change the width of the gadget. #PB_Ignore can be used to ignore the parameter.
- height: Change the height of the gadget. #PB_Ignore can be used to ignore the parameter.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- HideWebGadgetExDevTools()
- Syntax:
Code: Select all
Result = HideWebGadgetExDevTools(ID, State, @ErrorOutput$)
- Description: Hides or displays the development environment. This allows you to analyze the source code.
- Parameter:
- ID: The number of the created gadget.
- State:
- 0: Show
- 1: Hide
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- ExecuteWebGadgetExJavaScript()
- Syntax:
Code: Select all
Result = ExecuteWebGadgetExJavaScript(ID, Code$, @Output$, @ErrorOutput$)
- Description: Executes any Javascript code. Hint: If you want to execute modal dialogs like Alert(), the parameter "Output" must be set to 0.
- Parameter:
- ID: The number of the created gadget.
- Code$: Javascript code that is to be executed.
- @Output$: If a Javascript function has a return value, it is saved in this variable. If an error exists in the Javascript code, the Javascript error is saved in this variable.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- BindWebGadgetExJavaScript()
- Syntax:
Code: Select all
Result = BindWebGadgetExJavaScript(ID, PBProcedureName$, PBProcedureHandle, PID, @ErrorOutput$)
- Beschreibung: Creates a link between PB procedure and Javascript. This makes it possible to execute a PB procedure from Javascript, including passing parameters.
- Parameter:
- ID: The number of the created gadget.
- PBProcedureName$: The name of the procedure to be executed.
- PBProcedureHandle: The handle number of the procedure to be executed.
- PID: The PID number of your own program.
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- GetWebGadgetExAttribute()
- Syntax:
Code: Select all
Result = GetWebGadgetExAttribute(ID, Attribute, @ErrorOutput$)
- Description: Determines the value using the specified attribute.
- Parameter:
- ID: The number of the created gadget.
- Attribute: One of the following attributes can be used:
- #PB_Web_Busy: Checks if the page is still loading.
- #PB_Web_Zoom: Determines the zoom value in percent.
- #PB_Web_StatusCode: Determines the status code after loading the page, e.g. website not found or timeout.
- @ErrorOutput$: If an error occurs, the error message is stored in the string variable.
- Return value: Value using the specified attribute.
- Syntax:
- SetWebGadgetExAttribute()
- Syntax:
Code: Select all
Result = SetWebGadgetExAttribute(ID, Attribute, Value, @ErrorOutput$)
- Description: Changes the value using the specified attribute.
- Parameter:
- ID: The number of the created gadget.
- Attribute: One of the following attributes can be used:
- #PB_Web_Zoom: Changes the zoom value in percent.
- #PB_Web_BlockPopupMenu: Enables or disables the context menu.
- #PB_Web_EnableDrop: Enables or disables the drop feature.
- @ErrorOutput$: If an error occurs, the error message is stored in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- EnableRemoteDebugger()
- Syntax:
Code: Select all
Result = EnableRemoteDebugger(Port, @ErrorOutput$)
- Description: This allows you to debug the opened page on another port with DevTools. It can only be enabled and used once per process before gadget creation. Example address for port 8088: http://localhost:8088/
- Parameter:
- Port: Port number for debugging an open page. The port number must be between 1024 and 65535.
- @ErrorOutput$: If an error occurs, the error message is stored in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- SetWebGadgetExSetUserAgent()
- Syntax:
Code: Select all
Result = SetWebGadgetExSetUserAgent(UserAgent$, @ErrorOutput$)
- Description: Changes the UserAgent string for the WebGadget. It can only be set once per process before gadget creation.
- Parameter:
- UserAgent$: UserAgent
- @ErrorOutput$: If an error occurs, the error message is saved in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- SetWebGadgetExProxy()
- Syntax:
Code: Select all
Result = SetWebGadgetExProxy(Proxy$, @ErrorOutput$)
- Description: Changes the proxy server for the WebGadget. It can only be set once per process before gadget creation.
- Parameter:
- Proxy$: Address and port number of the proxy server.
- @ErrorOutput$: If an error occurs, the error message is stored in the string variable.
- Return value:
- 1: The process was successful.
- Syntax:
- .NET Framework 4.7.2 or higher
- Unicode activation (default from PB 5.50)
The component is free and may be used both privately and commercially.
The following copyright texts must be included:
The framework CEF (Chromium Embedded Framework) is also used in many other products. E.G: GTA Online, Minecraft, Unity3D, Unreal Engine, Amazon Music, Facebook Messenger, ...Copyright © The CefSharp Authors. All rights reserved.
Copyright 2015 The Chromium Authors. All rights reserved.
Copyright © 2019 RSBasic.de
Download: https://www.rsbasic.de/downloads/downlo ... Gadget.zip
I would be very pleased about feedbacks, improvement suggestions, error messages or wishes. If you want to support me, you can also donate me a little something. Thanks
PS: In the first version there is still a small bug in the gadget, which only occurs sometimes and it can happen that the position and size of the gadget is not right. If you also have this bug, please let me know.