• Habe ich gerade bei PB gefunden.

    Wenn man mal wissen möchte, was das HTML-Win so alles kann :

    Code
    Window 820, 420
    
    var h& = create("htmlWin",%hWnd,"https://html5test.com/",5,10,10,800,400)
    
    While 1
    waitInput
    EndWhile
    
    end

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress, WoltLab & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis:

  • Hallo Heinz,

    im PureBasic haben findige Leute die neue WebView2 von Microsoft umgesetzt. Edge/ Chromium

    Webview2 control - Chromium browser for Purebasic (Windows) - Page 10 - PureBasic Forums - English

    Code
    Declare WebView2Dll&
    WebView2Dll& = ImportDll("x86\\WebView2Loader.dll","*")
    
    ListBox$("",2)
    
    'Print GetAvailableCoreWebView2BrowserVersionString(Pfad#,Addr(Version!))
    'Print String$(Pfad#,0)
    'Print Str$(Version!)
    
    WaitInput

    Microsoft Edge WebView2 | Microsoft Edge Developer

    Ich würde gerne in XProfan auch WebView2 einsetzen! Damit könnte man den Funktionsumfang zusammen mit WebApplications / PhP und Java fast unendlich erweitern! Leider reicht mein Wissen nicht aus! Jens? Was sagst du dazu gibt es da eine Möglichkeit wie bei Purebasic?

    Viele Grüße

  • Ich habe mal ein wenig herumprobiert. Es sollte mit CreateCoreWebView2Environment losgehen aber das erwartet direkt als Parameter ein COM Objekt. Das wirst du in XProfan leider nicht zum Laufen bringen.

  • Vielleicht könnte was über OCX gehen. Damit kann man ja auch COM-Objekte

    wie z.b. Excel ansprechen. Die INCLUDES gibt es ja bei xprofan.net zum Download.

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

  • Ging mit ocx2 und ocx3a.

    Gruß Thomas

  • Schade, daß ich kein Excel habe. Brauche sowas auch seltener.

    Da lohnt es sich nicht wirklich, Geld zu investieren.

    Hat eigentlich OpenOffice/LibreOffice auch so ein COM-Interface ?

    Das wäre für mich dann noch interessant, zumal die ja kostenlos sind.

    LibreOffice habe ich sogar installiert bzw. vor kurzem ein Update gemacht.

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

  • Ich habe eine kleine C++ Wrapper-DLL entwickelt, mit der man Microsoft WebView2 direkt in XProfan4 verwenden kann.

    Die DLL kapselt:

    • Initialisierung von WebView2
    • Host-Fenster
    • Multi-Tab-Unterstützung
    • Navigation / HTML-Inhalt setzen
    • JavaScript ausführen
    • Ready-Waiting mit Timeout
    • Thread-sichere Kommunikation

    Die DLL funktioniert unter:

    • Windows 10 / 11
    • Windows Server 2016 (mit Runtime)
    • Win32 Builds (32 Bit)

    Das ganze ist noch im Alpha Stadium aber schon lauffähig.
    Den Eintrag hier mache ich auch schon mit dem XProfan Browser :P

    Eingebunden wird das ganze mit:
    Def WV_Init(5) !"WebViewWrapper.dll","WV_Init"
    Def WV_NewTab(0) !"WebViewWrapper.dll","WV_NewTab"
    Def WV_SwitchTab(1) !"WebViewWrapper.dll","WV_SwitchTab"
    Def WV_Navigate(2) !"WebViewWrapper.dll","WV_Navigate"
    Def WV_Move(4) !"WebViewWrapper.dll","WV_Move"
    Def WV_Back(1) !"WebViewWrapper.dll","WV_Back"
    Def WV_Forward(1) !"WebViewWrapper.dll","WV_Forward"
    Def WV_Reload(1) !"WebViewWrapper.dll","WV_Reload"
    Def WV_WaitReady(2) !"WebViewWrapper.dll","WV_WaitReady"

    Es fehlen noch Funktionen wie WV_GetHtml oder vieles andere..
    Aber man kann schon mal ein modernes Chromium Based Browser Fenster in ein Xprofan Programm integrieren!

    Beispielcode liegt bei

    Viel Spaß damit!

  • Wow, sehr schön!!

    Kannst Du auch eine 64bit-Variante erzeugen, oder geht das mit der Sprache nicht, die Du nutzt?

    Kann man den Inhalt des URL-Edit-Controls automatisch an die URL der Seite, die gerade angezeigt wird, anpassen? Vermutlich mit Event-verknüpftem JavaScript? In PureBasic wäre das:

    Beste Grüße, Jens-Arne

  • Hallo Jens,

    die 64 Bit Version habe ich noch nicht getestet.
    Anbei schon mal die Version in der mittels Subclassing die URL ausgelesen wird und ins Edit
    übernommen wird.

    Viel Spaß beim testen ;)

    Viele Grüße

    Ps: Anbei die XProfan4 Version 32Bit und die 64Bit Variante

  • Sieht gut aus! DIe 64bit-Version funktioniert allerdings jedenfalls mit FreeProfan64 nicht: Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Besser kann ich die Fehlermeldung nicht abbilden, das ist ja in FreeProfan64 immer etwas schwierig. Es mag sein, dass es mit PureBasic 64bit geht, aber dafür fehlt mir noch eine aussagekräftige Hilfedatei zu Deiner DLL. Es wäre empfehlenswert, jetzt schon mit deren Erstellung anzufangen, damit es nachher nicht eine so riesige Aufgabe wird.

    Es wird beim Start ein Verzeichnis "XProfanBrowser.exe.WebView2" mit diversen Unterverzeichnissen angelegt, die allerdings weitestgehend leer sind (wenn nicht sogar vollständig leer). Was ist das und ist das nötig?

  • Hallo Jens,

    das Problem mit 64 Bit habe ich auch.
    Ich konnte es auch nicht zum laufen bringen selbst mit verschiedensten Änderungen in der DLL.
    Es scheint ein Problem mit der Rückmeldung an das Hostfenster zu sein:

    __declspec(dllexport)
    void __stdcall WV_Navigate(int id, const char* url)
    {
    if (!g_host || !url) return;
    ActionStr* a = new ActionStr();
    a->tabId = id;
    a->text = AnsiToWide(url);
    PostMessage(g_host, WM_WV_NAVIGATE, 0, (LPARAM)a); <-- Hierbei Stürzt es ab
    }

    Ich werde am Montag meinen Kollegen fragen er ist etwas bewanderter in C++
    Die Dateien / Ordner werden direkt vom MS Webview angelegt und sind nicht zu beeinflussen.
    (Alles wie bei einer Portable App)

    Der Tipp mit der Hilfe ist gut.
    Obwohl es aktuell nur sehr wenig notwendige Funktionen gibt anbei die kurze Doku.

    Viele Grüße

    PS: Melde dich mal ob es mit PureBasic geht.

  • Ist g_host auf 64bit-Pointer gecasted bzw. so definiert? Der Rest von PostMessage sieht eigentlich ok aus.

    Mit einer Hilfe meinte ich eigentlich neben einem natürlich extrem hilfreichen Code-Beispiel eine Beschreibung der Funktionen und insbesondere davon, was deren Parameter machen.

  • Hallo Jens,

    ja das habe ich auch schon probiert!
    In Profan64 mit Pointer gearbeitet.

    __declspec(dllexport)
    void __stdcall WV_Navigate(int id, const char* url)
    {
    if (!g_host || !IsWindow(g_host) || !url)
    return;

    ActionStr* a = new ActionStr();
    a->tabId = id;
    a->text = AnsiToWide(url);

    if (!PostMessage(g_host, WM_WV_NAVIGATE, 0, reinterpret_cast<LPARAM>(a)))
    {
    delete[] a->text;
    delete a;
    }
    }

    Ich bin mit meinem Latein am Ende warum es kracht.

    Es wird die Seite geöffnet kommt der Fehler den du ja auch schon hattest.

    Viele Grüße

  • Guten Morgen, ich muss gleich nach Stuttgart fliegen und bin deshalb beim 1. Kaffee. ;)

    Ich habe es mit PureBasic 64bit getestet, da ist es dasselbe: Absturz, nachdem die Seite geladen wurde. Und zwar leider ohne spezifische Fehlermeldung, was für einen Fehler in der DLL spricht.

    Ich meinte oben: Ist g_host in der C++-DLL als 64bit-Pointer deklariert? Sonst geht die Message irgendwohin, weil die oberen 32bit des Pointers abgeschnitten werden.

    Allerdings wird a sofort gelöscht, wenn das PostMessage raus ist. Das Hauptprogramm versucht dann, daraus die neue URL zu lesen, also aus einem nicht mehr existierenden Pointer auf den Text der URL. Das kann klappen, muss es aber nicht - auch in 32bit dürfte das dann und wann einen undefinierten Absturz provozieren. a muss daher global deklariert werden und persistent sein. Das dürfte das Problem sein.

    Noch eine Frage: Warum muss man mit einer Schleife versuchen, WV_NewTab dazu zu bewegen, einen gültigen Wert für das neue Web-Control zu erhalten? Wenn noch nicht alles initialisiert ist, sollte WV_Init so lange mit dem Return warten, bis alles bereit ist.

    Code
    SetTimer 10
    While t[0] = 0
     WaitInput
     t[0] = WV_NewTab()
    EndWhile
    KillTimer

    4 Mal editiert, zuletzt von Jens-Arne (23. Februar 2026 um 05:00)

  • Moin!

    Erste Erkenntnis:
    Es funktioniert mit 64bit! Super Arbeit!! Kompilier' das nochmal mit 32bit, es gibt eigentlich keinen Grund, warum das nicht klappen sollte. Und jetzt brauchen wir wirklich mal eine sinnvolle Dokumentation. :)

    Zweite Erkenntnis:
    Ich habe JRPC3 offenbar nicht völlig umsonst geschrieben. Du hast versehentlich die *.enh3-Datei mitgeliefert. Das freut mich wirklich extrem! Da steckt so viel Arbeit drin, die nun, da XProfan ja leider dem Untergang geweiht ist, völlig vergeblich zu sein schien - war sie aber vielleicht ja doch nicht ganz.

    Herzliche Grüße, Jens-Arne

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!