Author Topic: Canary Bay WD17+ (first release)  (Read 9383 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Canary Bay WD17+ (first release)
« on: June 03, 2020, 10:39:39 am »


For those concerned:

Because the old Internet Explorer web browser is completely outdated,
I looked for an alternative and I came across this magnificent free C++ project written with Visual Studio 2019.

webview2

This project requires installing

1 - Microsoft Edge Canary (download)
2 - Microsoft FREE Visual Studio 2019 Community(download)
3 - WebView2Browser (download)

Useful links:
https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/0-9-488-reference-webview2
https://github.com/MicrosoftEdge/WebView2Samples/tree/master/WebView2APISample


And here is The "Canary Bay" WD17+ example that i have done for WinDev:




History:
06-02-2020 Beta version 1.00
                  First release
06-03-2020 Beta version 1.01
                  With code cleanup, and minor fixes. Plus new logo, and dock/undock button.
06-04-2020 Beta version 1.02
                  All the WDcom code has been replaced with direct call to the core flat API to get rid of wd170com64.dll,
                  thus saving a massive 1999 Kb.
06-05-2020 Beta version 1.03
                  When closing the last Browser TAB, the parent region was not restored living the desktop visible in the clipping area,
                  this has been fixed.

Note: Attachments are only available to registered users.
You must first register in order to see them.
See here what to do to register


« Last Edit: March 26, 2021, 11:32:44 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Canary Bay WD17+ beta version 1.02
« Reply #1 on: June 04, 2020, 06:18:12 pm »
The beta version 1.02 has been released,
both source.zip and binary.zip are attached to the first post of this thread.

Because i hate bloated code, i have replaced all calls to the WDcom64.dll by direct use of the core flat API,
thus saving a massive 1999 Kb.

This also ensure that i shall be able to re-use the same code with the other languages of my soap box.

To reduce the size of the WD17 binary framework with this project, use only:




« Last Edit: June 04, 2020, 06:21:30 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (first release)
« Reply #2 on: June 05, 2020, 02:14:45 pm »
The beta version 1.03 has been released,
both source.zip and binary.zip are attached to the first post of this thread.

When the last Browser TAB was closed, the parent region was not restored living the desktop visible in the clipping area.
(thanks to Jean-Michel who reported this behavior)

To see for the code changes, search for "// Beta version 1.03"

« Last Edit: March 26, 2021, 11:33:23 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (first release)
« Reply #3 on: June 05, 2020, 05:45:28 pm »
A 32-bit version of the framework has been attached to the first post of this thread, in:

WebView2Loader_32-bit.zip
« Last Edit: March 26, 2021, 11:33:57 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (version 1.04)
« Reply #4 on: June 13, 2020, 11:00:29 am »
Jean-Michel

Voici la version 1.04, qui permet de changer l'URL utilisée en cas d'ouverture d'un nouvel onglet.

PROCEDURE StartBrowser(LOCAL sURL is string)
// If the Browser is already running, then shut it down in order to create a brand new page
IF (IsWindow(gP.hBrowser)) THEN
   SendMessageA(gP.hBrowser, WM_CLOSE, 0, 0)
   gP.hBrowser = 0
END

fname is string = "WebView2Browser"   
fConfig is string = fTempPath() + fname + ".bin"

// Customize the Browser size
cfg is SETBIN
lp is POINT; ClientToScreen(Handle(Browser_Template..Name), lp)
cfg.dwExStyle = WS_EX_TOOLWINDOW // Don't show the Browser icon on the taskbar
cfg.dwStyle = WS_POPUP | WS_VISIBLE
cfg.hParent = gP.hMain
cfg.x = lp.x
cfg.y = lp.y
cfg.w = Browser_Template..Width
cfg.h = Browser_Template..Height
// Version 1.04 to setup new tab to a specific URL
cfg.defaultURL = Complete(AnsiToUnicode("https://www.google.fr/"), 520, Caract(0))
// Create the config file
fHandle is int = fOpen(fConfig, foCreate)
IF fHandle <> -1 THEN
   fWrite(fHandle, &cfg, Dimension(cfg))
   fClose(fHandle); fHandle = 0
END


Est-ce que çà correspond à ce que vous voulez faire ?

Patrice
(Always working with the latest Windows version available...)

Jean-Michel INGELS

  • Newbie
  • *
  • Posts: 4
Re: Canary Bay WD17+ (latest release)
« Reply #5 on: June 14, 2020, 04:05:33 pm »
Bonjour Patrice et encore une fois merci beaucoup pour votre réactivité.

La version 1.04 apporte effectivement le comportement attendu de pouvoir ouvrir tout nouvel onglet sur une url déterminée par programmation et différente de celle imposée originellement par Webview2Browser (moteur Bing).

Je n'ai rencontré aucune difficulté à intégrer votre solution dans l'exemple WD Bureautique de PC SOFT que j'utilise pour une application où l'utilisation d'une app sur le web (et donc désormais via votre solution) et d'une application de bureautique sont nécessaires.

Votre code est très lisible (aucune verbosité) et permet de comprendre ce que vous réalisez dans votre dev.

Cela fait un bon moment que je cherchais une solution fonctionnelle. J'ai essayé les différentes pistes proposées sur d'autres forums mais elles sont parfois complexes à mettre en oeuvre contrairement à votre solution dont l'approche paraît si simple qu'on se demande pourquoi personne n'y a pensé auparavant.

De plus, sur d'autres forums, il est difficile de faire progresser une solution quand cela n'est pas une priorité pour le développeur.

Visiblement pour vous, il en est tout autre car vous êtes très réactif et faites preuve de désir de perfection (si je peux m'exprimer ainsi, c'est pas du fayotage, mais vous allez au-delà de ce qu'on demande dans le souci d'avoir une solution très pro et cela est rare).

Persuadé de ce à quoi vous vous attachez à être auprès de votre communauté, j'ai déjà réalisé un premier don Paypal et j'en ferai un second prochainement, car cela mérite encouragement et reconnaissance.

Bien à vous,
Jean-Michel


Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (latest release)
« Reply #6 on: June 14, 2020, 04:20:06 pm »
Merci Jean-Michel pour votre commentaire (et pour le don).
« Last Edit: June 17, 2020, 11:26:57 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Bernard Kunzy

  • Newbie
  • *
  • Posts: 1
Re: Canary Bay WD17+ (latest release)
« Reply #7 on: June 15, 2020, 06:47:37 pm »
Super et tellement plus simple à utiliser que les usines a gaz dot.NET.

Merci !

Patrick Allémoz

  • Newbie
  • *
  • Posts: 1
Re: Canary Bay WD17+ (latest release)
« Reply #8 on: June 23, 2020, 10:55:07 pm »
Bonjour,

Projet sympathique mais qui pour moi reste inutilisable en clientèle vu qu'il faut installer une version spécifique de dev de Edge sur chaque poste qui en plus est mise à jour tous les jours ...

Tu cherches a gagner 2 Mo en supprimant une DLL de Windev mais derrière tu fais passer des centaines de Mo pour l'update journalier ... ce n'est pas très cohérent.

Néanmoins cela reste une très bonne alternative aux autres projets disponibles sur le net.

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (latest release)
« Reply #9 on: June 24, 2020, 12:10:40 pm »
Patrick,

Je ne partage pas votre opinion, car dès que la version officielle sera libérée il n'y aura plus rien a installer.

>>tu fais passer des centaines de Mo pour l'update journalier
Pour moi qui l'utilise tous les jours je peux vous dire que je n'ai jamais été gêné par les mises-à-jour, dont je ne me suis jamais rendu compte.

A propos de dot.NET et les "frameworks" monstrueux en général (sic)
J'ai abandonné C# en 2005, pour passer au C/C++ natif, et je n'ai jamais regretté ce choix qui me permet de créer de véritables DLL natives qui n'ont rien a voir avec les prétendus DLL dot.NET qui sont des usines à gaz (à cause des dépendances multiples).

Le plus important pour moi est que j'ai la main sur tout, non seulement le code WL, mais surtout sur le code C++ du browser lui-même, sans quoi je n'aurai pas pu permettre son intégration dans WinDev.
Et pour illustrer mon propos, j'ai une grosse surprise pour la prochaine version...
« Last Edit: June 24, 2020, 05:12:54 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
WD26
« Reply #10 on: October 01, 2020, 10:17:23 am »
WD26 est annoncé

Comme par hasard, la principale nouveauté, est le support de Chromium en mode natif...

Dixit :
"Le code source d'un navigateur est livré en version 26, vous pouvez utiliser, modifier, personnaliser ce code pour l'inclure dans vos applications.
Utiliser un navigateur de ce type permet de s'assurer d'une présentation identique des pages pour tous vos utilisateurs.
Ce type de navigateur permet également de définir facilement la liste des seuls sites qui peuvent être ouverts, ce qui peut être utile en milieu professionnel.
"

L'avantage du projet Canary Bay, est qu'il fonctionne avec toutes les versions de WinDev ainsi qu'avec tous les langages de programmation que ce soit en mode 32 ou 64-bit.
« Last Edit: October 01, 2020, 10:19:02 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael MALKA

  • Newbie
  • *
  • Posts: 4
Re: Canary Bay WD17+ (latest release)
« Reply #11 on: March 19, 2021, 08:12:09 pm »
Bonsoir, je suis un peut perdu car je ne maitrise absolument pas le languace C.
j'ai donc testé votre application, elle fonctionne impeccable.
Par contre je n'arrive pas a trouver comment arriver a récupérer l'adresse du site que je visite .
Je m'explique je lance le navigateur sur l'adresse de google, et dans le moteur de recherche de celui-ci je tape une recherche, apres je clique sur le lien qu'il me propose.
J'arrive sur le site que je veux. Et je voudrais récupérer l'adresse de ce site par un bouton par exemple.
Et je n'arrive pas a voir comment faire, j'ai regardé la procédure StartBrowser et LoadURL, mais j'arrive pas à trouver.
Pourriez vous m'aider.
Merci l
« Last Edit: March 19, 2021, 08:34:46 pm by Michael MALKA »

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (latest release)
« Reply #12 on: March 20, 2021, 11:13:03 am »
Je n'ai pas travaillé sur ce code depuis un bon moment, il faut que je me replonge dedans et que je fasse des recherches car je ne me souviens plus...
Patrice
(Always working with the latest Windows version available...)

Michael MALKA

  • Newbie
  • *
  • Posts: 4
Re: Canary Bay WD17+ (latest release)
« Reply #13 on: March 20, 2021, 12:41:45 pm »
Bonjour, je vous en remercie bien

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1980
    • zapsolution
Re: Canary Bay WD17+ (latest release)
« Reply #14 on: March 22, 2021, 02:42:14 pm »
Michael

I made further investigation of the WV2B C++ code, and i think that i should be able to return you the URL entered/selected by the user.

Après avoir fait des recherches dans le code source de WV2B, je pense être en mesure de retourner l'URL saisie par l'utilisateur.
Cependant, ceci implique la modification du code source de WV2B ainsi que celui de l'application WinDev, mais comme j'ai vu que vous cherchez du coté du code dot.NET, vous avez peut être déjà trouvé une solution à votre problème.
Patrice
(Always working with the latest Windows version available...)