Aktuelle Zeit: 21.11.2019 23:03

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 81 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 9  Nächste
Autor Nachricht
 Betreff des Beitrags: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 24.04.2019 18:53 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Hallo,

wenn man das WebGadget benutzen möchte, dann hat man unter Windows immer das Problem, dass standardmäßig Internet Explorer 7 benutzt wird.
Mit Internet Explorer 7 kann man viele Websiten nicht ohne Javascript-Fehler anzeigen. Auch HTML5 und CSS3 werden nicht unterstützt.
Es ist immer notwendig, eine Einstellung in die Registry für das eigene Programm zu erstellen.

Unter Linux hat man das Problem nicht, weil dort die WebKit-Engine benutzt wird.
Wenn man unter Windows ebenfalls die WebKit-Engine verwenden möchte, kann man meine Bibliothek benutzen und jede moderne Website ohne Fehler anzeigen.

Funktionen:
  • WebGadgetEx()
    • Syntax:
      Code:
      Result = WebGadgetEx(ID, X, Y, Width, Height, URL$, ParentWindowID, @ErrorOutput$)

    • Beschreibung: Erstellt ein WebGadget mit der WebKit-Engine.
    • Parameter:
      1. ID: Eine eindeutige Nummer für das Gadget. #PB_Any kann verwendet werden, um die Nummer automatisch zu generieren.
      2. X: Legt die Position fest.
      3. Y: Legt die Position fest.
      4. Width: Legt die Breite fest.
      5. Height: Legt die Höhe fest.
      6. URL$: Die Adresse der Website, die geöffnet werden soll.
      7. ParentWindowID: Legt das Ziel-Fenster fest, in dem das Gadget erstellt wird.
      8. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich. Falls #PB_Any verwendet wird, dann wird die ID zurückgegeben.
    • Beispielcode:
      Code:
      ;Version: 1.1.0.0

      EnableExplicit

      Global PBEx_WebGadget

      #PBEx_WebGadgetEx_Version$ = "1.1.0.0"
      #PB_Web_Zoom = 100

      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, 1200, 768, "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, 20, 1200, 748, "http://www.rsbasic.de", WindowID(0), @ErrorOutput$)
        ;WebGadgetEx(1, 0, 20, 1200, 748, "https://www.whatismybrowser.com/detect/what-is-my-user-agent", WindowID(0), @ErrorOutput$)
        ButtonGadget(2, 0, 0, 50, 20, "Back", 0)
        ButtonGadget(3, 50, 0, 50, 20, "Forward", 0)
        ButtonGadget(4, 100, 0, 50, 20, "Reload", 0)
        ButtonGadget(5, 150, 0, 50, 20, "Stop", 0)
        ButtonGadget(6, 200, 0, 50, 20, "Google", 0)
        ButtonGadget(7, 250, 0, 70, 20, "Own HTML", 0)
        ButtonGadget(8, 320, 0, 70, 20, "Get HTML", 0)
        ButtonGadget(10, 390, 0, 70, 20, "Get URL", 0)
        ButtonGadget(11, 460, 0, 100, 20, "Get size && position", 0)
        ButtonGadget(12, 560, 0, 50, 20, "Get ID", 0)
        ButtonGadget(13, 610, 0, 50, 20, "Hide", 0)
        ButtonGadget(14, 660, 0, 50, 20, "Show", 0)
        ButtonGadget(15, 710, 0, 50, 20, "Size", 0)
        ButtonGadget(16, 760, 0, 100, 20, "Show/Hide DevT.", 0)
        ButtonGadget(17, 860, 0, 70, 20, "Execute JS", 0)
        ButtonGadget(18, 930, 0, 50, 20, "BindProc", 0)
        ButtonGadget(19, 980, 0, 50, 20, "CallProc", 0)
        ButtonGadget(20, 1030, 0, 50, 20, "IsBusy?", 0)
        ButtonGadget(21, 1080, 0, 50, 20, "GetZoom", 0)
        ButtonGadget(22, 1130, 0, 60, 20, "Zoom=200", 0)
       
        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, "http://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$)
              EndSelect
            Case #PB_Event_CloseWindow
              CloseLibrary(PBEx_WebGadget)
              End
          EndSelect
        ForEver
      EndIf

  • SetWebGadgetExText()
    • Syntax:
      Code:
      Result = SetWebGadgetExText(ID, URL$, @ErrorOutput$)

    • Beschreibung: Die Adresse der Website, die geöffnet werden soll.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. URL$: Die Adresse der Website, die geöffnet werden soll.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetWebGadgetExText()
    • Syntax:
      Code:
      Result = GetWebGadgetExText(ID, @Output$, @ErrorOutput$)

    • Beschreibung: Ermittelt die aktuelle Adresse der aufgerufenen Website.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @Output$: Die Adresse der Website wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetWebGadgetExState()
    • Syntax:
      Code:
      Result = SetWebGadgetExState(ID, State, @ErrorOutput$)

    • Beschreibung: Führt eine Aktion aus.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. State: Eine der folgenden Aktionen kann verwendet werden:
        • #PB_Web_Back: Ein Schritt zurück in der Navigations-Historie.
        • #PB_Web_Forward: Ein Schritt vorwärts in der Navigations-Historie.
        • #PB_Web_Refresh: Seite neu laden.
        • #PB_Web_Stop: Vorgang einer Seite, die noch geladen wird, abbrechen.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetWebGadgetExItemText()
    • Syntax:
      Code:
      Result = SetWebGadgetExItemText(ID, Entry, Text$, @ErrorOutput$)

    • Beschreibung: Führt eine Aktion aus.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. Entry: Eine der folgenden Aktionen kann verwendet werden:
        • #PB_Web_HtmlCode: Ändert den Seiten-Quelltext.
      3. Text$: Der Wert für die Aktion.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetWebGadgetExItemText()
    • Syntax:
      Code:
      Result = GetWebGadgetExItemText(ID, Entry, @Output, @ErrorOutput$)

    • Beschreibung: Führt eine Aktion aus.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. Entry: Eine der folgenden Aktionen kann verwendet werden:
        • #PB_Web_HtmlCode: Ermittelt den Seiten-Quelltext.
      3. @Output: Der Wert der Aktion wird in die Variable gespeichert.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • FreeWebGadgetEx()
    • Syntax:
      Code:
      Result = FreeWebGadgetEx(ID, @ErrorOutput$)

    • Beschreibung: Gibt das Gadget frei.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • IsWebGadgetEx()
    • Syntax:
      Code:
      Result = IsWebGadgetEx(ID, @ErrorOutput$)

    • Beschreibung: Überprüft, ob das Gadget noch gültig ist.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Das Gadget ist gültig.
  • WebGadgetExWidth()
    • Syntax:
      Code:
      Result = WebGadgetExWidth(ID, @ErrorOutput$)

    • Beschreibung: Ermittelt die Breite des Gadgets.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Breite des Gadgets.
  • WebGadgetExHeight()
    • Syntax:
      Code:
      Result = WebGadgetExHeight(ID, @ErrorOutput$)

    • Beschreibung: Ermittelt die Höhe des Gadgets.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Höhe des Gadgets.
  • WebGadgetExX()
    • Syntax:
      Code:
      Result = WebGadgetExX(ID, @ErrorOutput$)

    • Beschreibung: Ermittelt die Position des Gadgets.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Position des Gadgets.
  • WebGadgetExY()
    • Syntax:
      Code:
      Result = WebGadgetExY(ID, @ErrorOutput$)

    • Beschreibung: Ermittelt die Position des Gadgets.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Position des Gadgets.
  • WebGadgetExID()
    • Syntax:
      Code:
      Result = WebGadgetExID(ID, @ErrorOutput$)

    • Beschreibung: Ermittelt die Handle-Nummer des erstellten Gadgets. Die Handle-Nummer kann für WinAPI verwendet werden.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Handle-Nummer des Gadgets.
  • HideWebGadgetEx()
    • Syntax:
      Code:
      Result = HideWebGadgetEx(ID, State, @ErrorOutput$)

    • Beschreibung: Versteckt oder zeigt das Gadget an.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. State:
        • 0: Gadget anzeigen.
        • 1: Gadget verstecken.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • ResizeWebGadgetEx()
    • Syntax:
      Code:
      Result = ResizeWebGadgetEx(ID, X, Y, Width, Height, @ErrorOutput$)

    • Beschreibung: Ändert die Position und Größe des Gadgets.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. X: Die Position des Gadgets ändern. #PB_Ignore kann verwendet werden, um den Parameter zu ignorieren.
      3. Y: Die Position des Gadgets ändern. #PB_Ignore kann verwendet werden, um den Parameter zu ignorieren.
      4. Width: Die Breite des Gadgets ändern. #PB_Ignore kann verwendet werden, um den Parameter zu ignorieren.
      5. height: Die Höhe des Gadgets ändern. #PB_Ignore kann verwendet werden, um den Parameter zu ignorieren.
      6. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • HideWebGadgetExDevTools()
    • Syntax:
      Code:
      Result = HideWebGadgetExDevTools(ID, State, @ErrorOutput$)

    • Beschreibung: Versteckt oder zeigt die Entwicklungsumgebung an. Damit kann der Quelltext analysiert werden.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. State:
        • 0: Anzeigen
        • 1: Verstecken
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • ExecuteWebGadgetExJavaScript()
    • Syntax:
      Code:
      Result = ExecuteWebGadgetExJavaScript(ID, Code$, @Output$, @ErrorOutput$)

    • Beschreibung: Führt einen beliebigen Javascript-Code aus. Hinweis: Wenn man modale Dialoge wie Alert() ausführen möchte, dann muss der Parameter "Output" auf 0 gesetzt werden.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. Code$: Javascript-Code, der ausgeführt werden soll.
      3. @Output$: Falls eine Javascript-Funktion einen Rückgabewert besitzt, dann wird dieser in diese Variable gespeichert. Falls im Javascript-Code ein Fehler existiert, dann wird der Javascript-Fehler in diese Variable gespeichert.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • BindWebGadgetExJavaScript()
    • Syntax:
      Code:
      Result = BindWebGadgetExJavaScript(ID, PBProcedureName$, PBProcedureHandle, PID, @ErrorOutput$)

    • Beschreibung: Erstellt eine Verknüpfung zwischen PB-Prozedur und Javascript. Damit ist es möglich, aus Javascript eine PB-Prozedur inkl. Parameterübergebe auszuführen.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. PBProcedureName$: Der Name der auszuführende Prozedur.
      3. PBProcedureHandle: Die Handle-Nummer der auszuführende Prozedur.
      4. PID: Die PID-Nummer des eigenen Programms.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetWebGadgetExAttribute()
    • Syntax:
      Code:
      Result = GetWebGadgetExAttribute(ID, Attribute, @ErrorOutput$)

    • Beschreibung: Ermittelt mit Hilfe des angegebenen Attributs den Wert.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. Attribute: Eine der folgenden Attribute kann verwendet werden:
        • #PB_Web_Busy: Überprüft, ob die Seite noch lädt.
        • #PB_Web_Zoom: Ermittelt den Zoom-Wert in Prozent.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Wert mit Hilfe des angegebenen Attributs.
  • SetWebGadgetExAttribute()
    • Syntax:
      Code:
      Result = SetWebGadgetExAttribute(ID, Attribute, Value, @ErrorOutput$)

    • Beschreibung: Ändert mit Hilfe des angegebenen Attributs den Wert.
    • Parameter:
      1. ID: Die Nummer des erstellten Gadgets.
      2. Attribute: Eine der folgenden Attribute kann verwendet werden:
        • #PB_Web_Zoom: Ändert den Zoom-Wert in Prozent.
        • #PB_Web_BlockPopupMenu: Aktiviert oder deaktiviert das Kontextmenü.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • EnableRemoteDebugger()
    • Syntax:
      Code:
      Result = EnableRemoteDebugger(Port, @ErrorOutput$)

    • Beschreibung: Damit kann man die geöffnete Seite auf einem anderen Port mit DevTools debuggen. Es kann nur einmalig pro Prozess vor der Gadgeterstellung aktiviert und verwendet werden. Beispiel-Adresse für Port 8088: http://localhost:8088/
    • Parameter:
      1. Port: Portnummer für das Debuggen einer geöffneten Seite. Die Portnummer muss zwischen 1024 und 65535 liegen.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetWebGadgetExSetUserAgent()
    • Syntax:
      Code:
      Result = SetWebGadgetExSetUserAgent(UserAgent$, @ErrorOutput$)

    • Beschreibung: Ändert den UserAgent-String für das WebGadget. Es kann nur einmalig pro Prozess vor der Gadgeterstellung festgelegt werden.
    • Parameter:
      1. UserAgent$: UserAgent
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetWebGadgetExProxy()
    • Syntax:
      Code:
      Result = SetWebGadgetExProxy(Proxy$, @ErrorOutput$)

    • Beschreibung: Ändert den Proxy-Server für das WebGadget. Es kann nur einmalig pro Prozess vor der Gadgeterstellung festgelegt werden.
    • Parameter:
      1. Proxy$: Adresse und Port-Nummer des Proxy-Servers.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.

Systemvoraussetzungen:
  • Windows Vista oder höher
  • .NET Framework 4.5.2 oder höher
  • Unicode-Aktivierung (standardmäßig ab PB 5.50)

Lizenz: Diese DLL-Datei basiert auf die Komponente CefSharp und Chromium mit der Version 71.0.3578.98 und ist als BSD lizenziert.
Die Komponente ist kostenlos und darf sowohl privat als auch kommerziell verwendet werden.
Folgende Copyright-Texte müssen mitgeliefert werden:
Zitat:
Copyright © The CefSharp Authors. All rights reserved.
Copyright 2015 The Chromium Authors. All rights reserved.
Copyright © 2019 RSBasic.de

Das Framework CEF (Chromium Embedded Framework) wird auch in vielen anderen Produkten verwendet. Z.B.: GTA Online, Minecraft, Unity3D, Unreal Engine, Amazon Music, Facebook Messenger, ...

Download: http://www.rsbasic.de/downloads/downloa ... Gadget.zip
Bild

Ich würde mich über Feedbacks, Verbesserungsvorschläge, Fehlermeldungen oder Wünsche sehr freuen. Wer mich unterstützen möchte, kann mir auch was kleines spenden. Danke :)

PS: Es ist in der ersten Version noch ein kleiner Fehler drin, der nur manchmal auftritt und zwar kann es passieren, dass die Position und Größe des Gadgets nicht stimmen. Wenn der Fehler bei euch auch auftritt, bitte Bescheid sagen.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 24.04.2019 20:08 
Offline
Benutzeravatar

Registriert: 08.03.2013 14:27
Wohnort: ERB
Das ist genial! Ich kann es zwar momentan nicht testen. Aber genau auf sowas warte ich schon ewig und finde weiterhin, das dies zum Standard gehören sollte!

Also vorab schonmal vielen vielen vielen Dank!

_________________
USAC Protokoll
Universal Stringbased Application Communication Protocoll

Github: Zum Spezifikationdokument v0.01


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 24.04.2019 21:22 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Moin RSBasic,

geile Sache mit dem Chromium Framework! :allright:

Leider bekomme ich es nicht zum laufen. Ich habe folgendes durchgeführt:
- Aus deinem ZIP die beiden DLL-Dateien nach D:\ entpackt
- Deinen Beispielcode aus dem ersten Post kopiert und in die IDE eingefügt
- Im Beispielcode die Dateinamen an D:\ angepasst "D:\PB.Ex_WebGadget_x86.dll" und "D:\PB.Ex_WebGadget_x64.dll"
- Den Beispielcode unter "D:\Beispielcode.pb" gespeichert
- F5 gedrückt

Das Programm wird compiliert und gestartet ohne dass ein Fenster geöffnet wird. Nach ca. 4 Sekunden erscheint der Dialog "Das mit dem Debugger getestete Executable endete unerwartet"

Der If-Zweig "If PBEx_WebGadget" wird komplett ausgeführt, das konnte ich mittels Debug-Ausgabe testen.
Er knallt dann in Zeile 48 bei "WebGadgetEx(1...) weg.

PS: Nur aus Neugier: Könnte man die nötige DLL als Datasection in ein Programm einbinden und aus dem Memory heraus laden?

_________________
"Never run a changing system!"
PB 5.71 x64, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 24.04.2019 21:24 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Hast du die anderen Dateien (cef.pak, CefSharp.dll, chrome_elf.dll, libcef.dll, ...) ebenfalls kopiert? Die brauchst du unbedingt.

Kurzer hat geschrieben:
PS: Nur aus Neugier: Könnte man die nötige DLL als Datasection in ein Programm einbinden und aus dem Memory heraus laden?

Du könntest alle Dateien in deine EXE-Datei inkludieren und vor der Benutzung entpacken.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 24.04.2019 22:45 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
LOL, entschuldige meine Dummheit. :lol:
Nein, die hatte ich nicht ausgepackt. Nun klappts auch einwandfrei. :allright:

Vielen Dank.

_________________
"Never run a changing system!"
PB 5.71 x64, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 25.04.2019 08:56 
Offline
Benutzeravatar

Registriert: 10.10.2014 13:14
Wohnort: Wolfenbüttel
:praise: :praise: :praise:

Vielen Dank

_________________
weil einfach einfach einfach ist ... mach' ich es anders


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 25.04.2019 14:47 
Offline
Benutzeravatar

Registriert: 13.07.2005 08:39
:allright: Vielen Dank!

Allerdings bekomme ich es auf Anhieb auch nicht ganz zum Laufen.

Ich habe unter Win10 x64 den Inhalt der Zip zusammen mit dem per Copy&Paste übertragenen Beispielprogramm von oben in einen Ordner gespeichert.

Wenn ich PB.Ex_WebGadget.pb unter PB 5.70 x64 aufrufe läuft es.

Das Beispielprogramm meldet aber beim Initialisieren des WebGadgetEx "Das mit dem Debugger getestete Executable endete unerwartet.".

Wenn ich den Quelltext von PB.Ex_WebGadget.pb übertrage bleibt es beim dem Fehler.
Wenn ich aber die PB.Ex_WebGadget.pb-Datei kopiere läuft die Kopie.

Unter x86 bekomme ich auf jeden Fall die Fehlermeldung.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 25.04.2019 14:51 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Meine Vermutung wäre, dass bei dir in den Compiler-Optionen die Einstellung "Temporäres Executable im Quellcode-Verzeichnis erstellen" nicht aktiviert ist.
Wenn diese Einstellung nicht aktiviert ist, dann wird die EXE-Datei immer im Temp-Ordner erstellt, in dem sich die DLL-Dateien nicht befinden.
Falls der Fehler weiterhin besteht, sag Bescheid.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 25.04.2019 17:11 
Offline
Benutzeravatar

Registriert: 13.07.2005 08:39
Deine Vermutung war richtig.
Einmal mehr: Vielen Dank !!!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PB.Ex WebGadget (Windows) (WebKit)
BeitragVerfasst: 25.04.2019 21:53 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
x86 funktioniert bei mir nicht, x64 schon.
Ist schon beeindruckend, aber die Dateien, die man da mitliefern müsste sind ganz schön fett!
104MB alleine für die libcef.dll, holla die Waldfee!

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 81 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 9  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye