Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | KGF_dll - nouvelles versions | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 participants | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 12 Juin 2019 - 17:24 | |
| Nouvelle version: KGF.dll V8.89 du 12/06/2019Nouveautés: - toutes les fonctions retournant un string à Panoramic acceptent maintenant indifféremment ADR(s$) et OBJECT_INTERNAL(obj%) et HANDLE(memo%) dans le paramère indiquant le ou les strings à retourner. Dans l'immédiat, tout ceci ne fait pas l'objet d'une mise à jour de la documentation - les fonctions concernées sont trop nombreuses.Modules modifiés: KGF.dllLa doc et les sources sont inchangées. L'effet net de ce changement est le suivant: - sans aucun changement dans les codes Panoramic existants, les programmes continueront à fonctionner exactement comme avant. - si l'on passe le handle d'un mémo Panoramic à la place de l'adresse d'une variable string, alors le texte retourné se trouvera dans le mémo visé. Le texte peut être long, peut avoir de multiples lignes etc. Pour info, on peut récupérer le texte d'un mémo dans une variable string de la manière suivante: - Code:
-
s$ = TEXT$(memo%) | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 14 Juin 2019 - 14:42 | |
| Nouvelle version: KGF.dll V8.90 du 14/06/2019
Nouveautés: - A de très rares exceptions près, toutes les fonctions de KGF.dll utilisent maintenant le mécanisme supposé compatible avec la version compilée, pour le passage de chaînes de caractères, aussi bien en entrée qu'en sortie.
Modules modifiés: KGF.dll
La doc et les sources sont inchangées.
Cette modification touche plus de la moitié des fonctions de KGF.dll, et la totalité des sources a été révisée. Pour les chaînes de caractères en sortie, c'était déjà fait depuis la version précédente. Maintenant, c'est également fait pour les chaînes de caractères en entrée. Le grand changement est interne - pour l'utilisateur, rien ne change et les sources Panoramic restent compatible. Par contre, même en entrée, on a maintenant le choix de placer la chaîne de caractères dans une variable passée par ADR(s$), ou alors dans un mémo et passer le texte par HANDLE(memo%) ou même OBJECT_INTERNAL(memo%).
Ce mécanisme de passage est maintenant assuré par une fonction unique de service interne. Si l'interface avec Panoramic compilé devait poser problème, il deviendra alors aisé d'y remédier en modifiant un seul et unique endroit.
NOTE IMPORTANTE
Du fait de ces milliers de modifications, il est possible que des instabilités aient été introduites dans KGF.dll. Dans les jours à venir, je serai très attentif à d'éventuels retours d'expérience indiquant des bugs et je corrigerai immédiatement. Pour plus de sécurité, j'ai mis cette version uniquement sur mon site internet (et accessible au téléchargement via la signature de mes posts), et j'ai laissé la version précédente dans mon WebDav, dossier "KGF DLL".
| |
| | | Pedro
Nombre de messages : 1555 Date d'inscription : 19/01/2014
| Sujet: KGF_dll - nouvelles versions Ven 14 Juin 2019 - 16:55 | |
| Bonjour.
J'ai téléchargé et testé la nouvelle version de kgf.dll, sans rencontrer de problème particulier pour l'instant.
Merci Klaus. | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 14 Juin 2019 - 17:05 | |
| SUPER ! Merci, Pedro ! Voici un petit code Panoramic montrant les nouvelles possibilités de passation d'une chaîne de caractères à Panoramic. La fonction test_GetStringFromPanoramic utilisée ici est nouvelle et non documentée, utilisée uniquement pour des tests. Son but est exclusivement de récupérer la chaîne de caractères passée en paramètre et de l'afficher: - Code:
-
' test_GetStringFromPanoramic.bas
dim s$, res% s$ = "chaîne dans variable s$"
memo 1 : full_space 1 : width 1,width(1)/2 : bar_both 1 item_add 1,"mémo 1 ligne 1" item_add 1,"mémo 1 ligne 2" memo 2 : full_space 2 : width 2,width(1) : left 2,width(1) : bar_both 2 item_add 2,"mémo 2 ligne 1" item_add 2,"mémo 2 ligne 2"
dll_on "KGF.dll" res% = dll_call1("test_GetStringFromPanoramic",adr(s$)) res% = dll_call1("test_GetStringFromPanoramic",handle(1)) res% = dll_call1("test_GetStringFromPanoramic",object_internal(2)) end
| |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 15 Juin 2019 - 12:46 | |
| Nouvelle version: KGF.dll V8.91 du 15/06/2019
Nouveautés: - nouvelle fonction PopupMenuTarget - le passage de paramètres en chaîne de caractères est maintenant compatible avec la version compilée de Panoramic, selon la méthode V1 décrite par Jack
Modules modifiés: KGF.dll KGF.chm
La doc est à jour. Les sources sont inchangées.
Cette version n'est pour le moment distribuée que sur mon site internet (téléchargement via les liens dans ma signature). Le WebDav n'est pas encore mis à jour, pour des raisons de sécurité. En effet, cette version modifié le comportement de plus de la moitie de toutes les fonctions de KGF.dll, et je préfère garder pendant quelque temps la version stable pour ceux qui rencontreraient des problèmes.
N'hésitez pas à me signaler toute anomalie, version interprétée ou compilée - je resterai vigilant et corrigerai le plus rapidement possible !
| |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 16 Juin 2019 - 18:07 | |
| Nouvelle version: KGF.dll V8.92 du 16/06/2019
Nouveautés: - nouvelles fonction: PopupMenuLocation, SetProgressBarColor, SetMultiSelectionLimitOfIconListBox, - nouvelles fonction: GetMacAddress, UseClientAreaAsRegion, ClearWindowRegion, Calculate3D - fonction KGFupdate: vérifier la disponibilité d'une nouvelle version, confirmation avant téléchargement
Modules modifiés: KGF.dll KGF.chm
La doc est à jour. Les sources sont inchangées.
Cette version apporte une sérrie conséquente de modifications. Dans les "nouvelles fonctions" d'abord: seule la fonction PopupMenuLocation est vraiment nouvelle, en réalité. Les autres existaient déjà, mais étaient seulement signalées par un petit message perdu dans la foule des posts sur le forum, et elles n'étaient pas documentées. C'est chose faite maintenant: la doc est complète pour chacune de ces fonctions. La seule fonction PopupMenuLocation vraiment nouvelle est un clône de la commande DROP_DOWN de Panoramic, mais en laissant le choix des coordonnées de positionnement du menu. Ensuite, la fonction KGFupdate a été préfixée d'une phase de vérification. Elle vérifie maintenant si une nouvelle version est disponible, affiche les informations des deux versions et demande l'autorisation de mise à jour à l'utilisateur. Et seulement en cas de réponse positive, tout le processus de mise à jour est enclenché. Je rappelle ici que ceci implique la fermeture automatique du programme en cours, le téléchargement de KGF.zip à partir de mon site, la décompression en KGF.dll et la mise en place dans le dossier dans lequel se situait la DLL actuellement sur la machine. Puis, le programme interrompu sera relancé automatiquement. Il est donc intéressant d'appeler cette fonction en tout début de programme, directement après la commande DLL_ON. | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 18 Juin 2019 - 14:14 | |
| Nouvelle version: KGF.dll V8.93 du 17/06/2019
Nouveautés: - objet TreeView: corriger un bug dans la gestion des flèches, créer et gérer les "attributs" des noeuds - objet TreeView: chaque élément peut maintenant avoir un ou plusieurs attributs (couples nom=valeur) - nouvelles fonctions: CreateHtmlTreeView, TreeViewNodeAttribute - GetTreeViewInformation: nouveaux codes action 9 et 10 - retour de chaînes de caractères de la DLL vers Panoramic: on peut maintenant utiliser ADR(s$), HANDLE(memo%),OBJECT_INTERNAL(memo%),HANDLE(list%) - correction de quelques erreur dans la documentation
Modules modifiés: KGF.dll KGF.chm
La doc est à jour. Les sources sont inchangées.
Ceci une avancée majeure. En-dehors de quelques corrections mineures dans la DLL et dans la doc, l'objet TreeView a été profondément remanié. Chaque élément peut maintenant recevoir un ou plusieurs attributs qui sont des couples "nom=valeur". Leur nombre n'est pas limité. Il y a également une extension du mécanisme de passage de paramètres sous forme de chaînes de caractères: maintenant, HANDLE(list%) peut également être utilisé, aussi bien en entrée qu'en sortie. | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 19 Juin 2019 - 20:34 | |
| J'apporte quelques précisions supplémentaires sur cette nouvelle version, et en particulier sur la nouveauté des "attributs" pour un noeud d'un TreeView.
Ceci peut avoir des applications très variées, et peut s'appliquer des des domaines divers.
Prenons la généalogie: on peut imaginer des attributs du genre "marié le=...", "décédé le=...", "profession=..." etc. Même des chemins vers des fichiers images tels que "Photo identité=C:\...\photo1.jpg".
Ou alors la populaire application "contacts" avec des attributs Nom, Prénom, Téléphone, Mail, Adresse, CodePostal, Ville, Remarques, ... . On peut imaginer une arborescence du genre Professionnel, Privé, Fournisseurs, Clients, Prospects, Médecins, ... et avoir une liste de contacts sous chacun de ces noeuds. On peut associer à chaque noed, si besoin, des attributs avec des photos, des documents texte (factures, ...), des liens URL (site internet, ...) etc.
De manière générale, on peut ajouter autant d'annotations que nécessaire, à n'importe quel élément d'un TreeView. Le nombre des attributs n'est pas limité, et il n'y a pas de restrictions sur leur nom. Ce sont de simples chaînes de caractères, c'est tout.
On dispose là d'un outil très outil très puissant pour structurer des informations hiérarchisables, quelque soit leur nature. | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 22 Juin 2019 - 2:54 | |
| Nouvelle version: KGF.dll V8.94 du 2/06/2019Nouveautés: - KGF.dll peut maintenant être appelée indifféremment de la version interprétée ou la version compilée de PanoramicModules modifiés: KGF.dllLa doc et les sources sont inchangées. Deux corrections ont été faites: 1. lors de la commande DLL_ON, la routine interne appelée pour construire l'environnement de KGF.dll a été modifiée de sorte à ne plus chercher à récupérer le numéro de version de Panoramic. 2. la fonction interne permettant de prendre un paramètre string via ADR(s$) en provenance de Panoramic a été adaptée à l'environnement compilé.Le programme suivant marche maintenant aussi bien en interprété qu'en compilé: - Code:
-
' test_GetStringFromPanoramic.bas
dim s$, res% s$ = "chaîne dans variable s$" width 0,900 memo 1 : full_space 1 : width 1,width(1)/3 : bar_both 1 item_add 1,"mémo 1 ligne 1" item_add 1,"mémo 1 ligne 2" memo 2 : full_space 2 : width 2,width(1) : left 2,width(1) : bar_both 2 item_add 2,"mémo 2 ligne 1" item_add 2,"mémo 2 ligne 2" list 3 : full_space 3 : width 3,width(1) : left 3,left(2)+width(1) item_add 3,"list 3 ligne 1" item_add 3,"list 3 ligne 2"
dll_on "KGF.dll" res% = dll_call1("test_GetStringFromPanoramic",adr(s$)) res% = dll_call1("test_GetStringFromPanoramic",handle(1)) res% = dll_call1("test_GetStringFromPanoramic",object_internal(2)) res% = dll_call1("test_GetStringFromPanoramic",handle(3)) ' object_internal() avec LIST <== impossible ! end
Bien sûr, il faut rester prudent. J'ai fait ce que je pouvais pour que ces modifications s'appliquent à l'ensemble des fonctions de KGF.dll (près de 1200 fonctions, tout de même !). Mais un problème peut toujours subsister, et je le corrigerai aussitôt qu'il sera signalé. | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 26 Juin 2019 - 0:05 | |
| Nouvelle version: KGF.dll V8.95 du 25/06/2019Nouveautés: - restructuration globale interne (sans incidence visibe par Panoramic) - correction de passage d'une chaîne vide de Panoramic vers la DLL en environnement compilé - nouvelles fonctions: WBHtmlToPanoramic, WB_HtmlToPanoramicModules modifiés: KGF.dllLa doc et les sources sont inchangées. La restructuration interne a été rendue nécessaire pour des raisons techniques et bien que représentant un travail considérable, n'a aucune incidence sur la façon dont un programme Panoramic utilise la DLL Suite à un signalement de Pedro, j'ai constaté que le passage d'une chaîne de caractères vide de Panoramic vers la DLL en mode Panoramic compilé provoquait un plantage brutal. Ceci est corrigé. Deux nouvelles fonctions, dont la documentation sera mise à jour prochainement: - Code:
-
res% = dll_call2("WBHtmlToPanoramic",act%,sortie%) res% = dll_call3("WB_HtmlToPanoramic",WB%,act%,sortie%) Ces deux fonctions retournent le code HTML complet de la page chargée actuellement dans le WebBrowser, en fonction du code action. Le résultat peut être chargé dans: - une chaîne de caractères: adr(s$) - un mémo: handle(memo%) ou object_internal(memo%) - unlist: handle(list%) Le code action peut être: 0 = le code HTML tel que retourné par le WebBrowser 1 = le code HTML en supprimant tous les CR et en remplaçant tous les LF par des CR LF 2 = le code HTML en supprimant tous les CR et tous les LF 3 = lecode HTML présenté "joliment" avec indentations etc (action en cours de réalisation) Le code retour est 0 si ok et -1 si erreur. Si le paramètre sortie% est 0 (zéro), alors la fonction retourne dans le code retour le nombre de caractères du code HTML à retourner selon le code action, sans retourner évidemment ce code HTML. Ceci permet de réserver d'emblée le nombre de caractères nécessaires.
Dernière édition par Klaus le Mer 26 Juin 2019 - 12:05, édité 1 fois | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 26 Juin 2019 - 1:07 | |
| Le code action 3 des nouvelles fonctions WBHtmlToPanoramic et WB_HtmlToPanoramic est opérationnel, en tout cas pour la reconnaissance de certaines balises de base. Ci-dessous un programme de démo: il charge la page d'accueil de mon site internet dans un objet WebBrowser, affiche dans un mémo le code HTML brut retourné par le browser, puis dans un autre mémo de code formatté (entièrement codé par mes soins). La ligne 28 contient une commande IF permettane de choisir entre le formattage par la fonction DLL (actuellement activé) ou par le programme Panoramic: - Code:
-
' test_WBEditMode.bas
label EditOn, EditOff
dim res%, url$, WB%, s$, i%, s1$, indent$, opn%, cls%, scr%, n% url$ = "https://klauspanoramic.000webhostapp.com/" ' url$ = "google.fr" button 1 : top 1,10 : left 1,10 : caption 1,"Edit ON" : on_click 1,EditOn button 2 : top 2,35 : left 2,10 : caption 2,"Edit OFF" : on_click 2,EditOff
full_space 0 dll_on "KGF.dll" res% = dll_call1("WB_SetBrowserType",0) WB% = dll_call1("WB_Create",handle(0)) res% = dll_call5("WB_Locate",WB%,150,10,400,height_client(0)-10) res% = dll_call2("WB_Url",WB%,adr(url$)) res% = dll_call3("WB_ScrollBars",WB%,3,3) memo 3 : top 3,10 : left 3,550 width 3,400 : height 3,height_client(0)-10 bar_both 3 memo 4 : top 4,10 : left 4,950 width 4,400 : height 4,height_client(0)-10 bar_both 4
if 1=1 : ' 1=1: formatter par la DLL 1=2: formatter en Panoramic s1$ = string$(50000," ") res% = dll_call3("WB_HtmlToPanoramic",WB%,2,adr(s1$)) s1$ = trim$(s1$) text 3,s1$ s1$ = string$(50000," ") res% = dll_call3("WB_HtmlToPanoramic",WB%,3,adr(s1$)) s1$ = trim$(s1$) text 4,s1$ else s1$ = string$(50000," ") res% = dll_call3("WB_HtmlToPanoramic",WB%,2,adr(s1$)) s1$ = trim$(s1$) text 3,s1$ s$ = "" indent$ = "" scr% = 0 i% = instr(s1$,"<") while i%>0 opn% = 0 cls% = 0 if i%>0 if i%=1 ' s$ = "<" s1$ = Mid$(s1$,2,len(s1$)) opn% = 1 cls% = 0 indent$ = indent$ + "| " else s$ = s$ + "<" + Left$(s1$,i%-1)+chr$(13)+chr$(10) if scr%=0 tag("head") tag("body") tag("style") tag("div") tag("p") tag("h") tag("a") tag("ul") tagunclosed("li") tagunclosed("br") tag("span") tag("nobr") tag("center") ' tag("style") end_if tagscript() if opn%=1 s$ = s$ + indent$ indent$ = indent$ + "| " end_if if cls%=1 indent$ = left$(indent$,len(indent$)-4) s$ = s$ + indent$ end_if s1$ = mid$(s1$,i%+1,len(s1$)) end_if i% = instr(s1$,"<") end_if end_while if len(s1$)>0 then s$ = s$ + s1$ text 4,s$ end_if end EditOn: res% = dll_call2("WB_EditMode",WB%,1) return EditOff: res% = dll_call2("WB_EditMode",WB%,0) return sub tag(tag$) n% = len(tag$) if lower$(mid$(s1$,i%,n%+1))="<"+tag$ ' message "open "+mid$(s1$,i%,n%+1) opn% = 1 cls% = 0 end_if if lower$(mid$(s1$,i%,n%+2))="</"+tag$ ' message "close "+mid$(s1$,i%,n%+2) opn% = 0 cls% = 1 end_if end_sub
sub tagunclosed(tag$) n% = len(tag$) if lower$(mid$(s1$,i%,n%+1))="<"+tag$ ' message "open "+mid$(s1$,i%,n%+1) opn% = 0 cls% = 0 s$ = left$(s$,len(s$)-3) + chr$(13)+chr$(10) + indent$ end_if if lower$(mid$(s1$,i%,n%+2))="</"+tag$ ' message "close "+mid$(s1$,i%,n%+2) opn% = 0 cls% = 0 s$ = left$(s$,len(s$)-3) + chr$(13)+chr$(10) + indent$ end_if end_sub
sub tagscript() if lower$(mid$(s1$,i%,7))="<script" opn% = 1 cls% = 0 scr% = 1 end_if if lower$(mid$(s1$,i%,8))="</script" opn% = 0 cls% = 1 scr% = 0 end_if end_sub
| |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 27 Juin 2019 - 9:04 | |
| Nouvelle version: KGF.dll V8.96 du 27/06/2019Nouveautés: - documentation des fonctions: WBHtmlToPanoramic, WB_HtmlToPanoramic - nouvelles fonctions: BrowserCreate, BrowserDeleteModules modifiés: KGF.dll KGF.chmLa doc est à jour. Les sources sont inchangées. Les nouvelles fonctions BrowserCreate et BrowserDelete permettent de charger simplement un browser dans une form, un panel etc et de naviguer directement vers une URL. Le browser va se dimensionner automatiquement aux dimensions de la zone client de l'objet de destination qu'il va remplir entièrement. Le programme de démo ci-après permet de choisir parmi les 4 browsers qui sont actuellement testés et opérationnels (à condition qu'ils soient installés, bien sûr): Opera, Firefox, Pale Moon, ChromeLe browser Edge ne pourra jamais fonctionner dans cet environnement. Il n'expose pas de handle qui permettrait de le manipuler. L'exemple fourni utilise la page d'accueil de Mappy pour la démonstration. Malheureusement, ce site ne peut pas être montré par l'objet WebBrowser actuel, car de dernier est basé sur un noyau Internet Explorer trop ancien. - Code:
-
' Mappy.bas
label lancer, arreter
dim res%, WB%, Browser$, NomBrowser$, Options$, url$, ID%
dll_on "KGF.dll" full_space 0 panel 1 : top 1,30 : left 1,200 : width 1,800 : height 1,600 button 10 : top 10,10 : left 10,10 : caption 10,"Start" : on_click 10,lancer button 11 : top 11,35 : left 11,10 : caption 11,"End" : on_click 11,arreter combo 20 : top 20,10 : left 20,200 item_add 20,"Opera" item_add 20,"Firefox" item_add 20,"Pale Moon" item_add 20,"Chrome" item_add 20,"Edge (inactif)" res% = dll_call2("SelectComboBoxItem",handle(20),2) end
lancer: select item_index(20) case 1: ' Opera Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "opera" NomBrowser$ = "Mappy -" case 2: ' Firefox ' pour Firefox: (créer au préalable le profile UtilisateurKGF" avec l'URL "config=profiles" Options$ = "-P "+chr$(34)+"UtilisateurKGF"+chr$(34)+" -no-remote" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "firefox" NomBrowser$ = "Mappy -" case 3: ' Pale Moon Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "palemoon" NomBrowser$ = "Mappy -" case 4: ' Chrome Options$ = "-incognito --new-window" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "chrome" NomBrowser$ = "Mappy -" case 5: ' Edge message "Désolé - Edge n'est pas utilisable ici !" return Options$ = "" url$ = "" Browser$ = "microsoft-edge:https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" NomBrowser$ = "MicrosoftEdge" end_select ID% = dll_call5("BrowserCreate",handle(1),adr(Browser$),adr(NomBrowser$),adr(Options$),adr(url$)) return arreter: ID% = dll_call1("BrowserDelete",ID%) return end
| |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 0:29 | |
| Nouvelle version: KGF.dll V8.97 du 29/06/2019Nouveautés: - BrowserCreate: le nom du browser peut maintenant être complété par un suffixe kiosk: palemoon ou palemoonkiosk, firefox ou firefoxkiosk, opera ou operakiosk, chrome ou chromekiosk Ces noms peuvent maintenant être indiqués en minuscules comme avant, mais aussi en Majuscules, ou un mélange des deux, comme FirefoxKiosk, par exemple. Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. Le mode kiosk permet de n'afficher que la fenêtre de navigation, sans la barre de titre, les menus et les barres d'outils. Voici la démo: - Code:
-
' Mappy.bas
label lancer, arreter, tick
dim res%, WB%, Browser$, NomBrowser$, Options$, url$, ID%, hnd%, x%, y%
dll_on "KGF.dll" full_space 0 panel 1 : top 1,30 : left 1,200 : width 1,800 : height 1,600 button 10 : top 10,10 : left 10,10 : caption 10,"Start" : on_click 10,lancer button 11 : top 11,35 : left 11,10 : caption 11,"End" : on_click 11,arreter combo 20 : top 20,10 : left 20,200 item_add 20,"Opera" : ' première fenêtre enfant est l'affichage seul item_add 20,"Opera Kiosk" : ' première fenêtre enfant est l'affichage seul item_add 20,"Firefox" : ' pas de fenêtre enfant item_add 20,"Firefox Kiosk" : ' pas de fenêtre enfant item_add 20,"Pale Moon" : ' pas de fenêtre enfant item_add 20,"Pale Moon Kiosk" : ' pas de fenêtre enfant item_add 20,"Chrome" : ' première fenêtre enfant est l'affichage seul item_add 20,"Chrome Kiosk" : ' première fenêtre enfant est l'affichage seul item_add 20,"Edge (inactif)" res% = dll_call2("SelectComboBoxItem",handle(20),3)
' memo 21 : top 21,10 : left 21,1010 : width 21,300 : height 21,600 : bar_both 21 ' timer 22 : timer_interval 22,200 : on_timer 22,tick : timer_off 22
end
lancer: select item_index(20) case 1: ' Opera Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "opera" NomBrowser$ = "Mappy -" case 2: ' Opera Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "operakiosk" NomBrowser$ = "Mappy -" case 3: ' Firefox ' pour Firefox: (créer au préalable le profile UtilisateurKGF" avec l'URL "config=profiles" Options$ = " -P "+chr$(34)+"UtilisateurKGF"+chr$(34)+" -no-remote" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "firefox" NomBrowser$ = "Mappy -" case 4: ' Firefox Kiosk ' pour Firefox: (créer au préalable le profile UtilisateurKGF" avec l'URL "config=profiles" Options$ = " -P "+chr$(34)+"UtilisateurKGF"+chr$(34)+" -no-remote" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "firefoxkiosk" NomBrowser$ = "Mappy -" case 5: ' Pale Moon Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "palemoon" NomBrowser$ = "Mappy -" case 6: ' Pale Moon Kiosk Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "palemoonkiosk" NomBrowser$ = "Mappy -" case 7: ' Chrome Options$ = "-incognito --new-window" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "chrome" NomBrowser$ = "Mappy -" case 8: ' Chrome Kiosk Options$ = "-incognito --new-window" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "chromekiosk" NomBrowser$ = "Mappy -" case 9: ' Edge message "Désolé - Edge n'est pas utilisable ici !" return Options$ = "" url$ = "" Browser$ = "microsoft-edge:https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" NomBrowser$ = "MicrosoftEdge" end_select ID% = dll_call5("BrowserCreate",handle(1),adr(Browser$),adr(NomBrowser$),adr(Options$),adr(url$)) if ID%=0 then return ' res% = dll_call2("GetProcessChildWindowHandle",ID%,handle(21)) ' timer_on 22 return arreter: ' timer_off 22 ID% = dll_call1("BrowserDelete",ID%) return tick: ' timer_off 22 res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) res% = dll_call2("GetObjectUnderPosition",x%,y%) caption 0,str$(res%) ' timer_on 22 return end
sub CreerProjetXUL(URL$) if dir_exists("KBrowser")=0 then dir_make "KBrowser" dir_change "KBrowser" if file_exists("chrome.manifest")=1 then file_delete "chrome.manifest" file_open_write 1,"chrome.manifest" file_writeln 1,"manifest chrome/chrome.manifest" file_close 1 if file_exists("KMappy.ini")=1 then file_delete "KMappy.ini" file_open_write 1,"KMappy.ini" file_writeln 1,"[App]" file_writeln 1,"Vendor=Klaus" file_writeln 1,"Name=KMappy" file_writeln 1,"Version=1.0" file_writeln 1,"BuildID=20100901" file_writeln 1,"ID=xulapp@xultest.org" file_writeln 1,"" file_writeln 1,"[Gecko]" file_writeln 1,"MinVersion=1.8" file_writeln 1,"MaxVersion=200.*" file_close 1 if dir_exists("chrome")=0 then dir_make "chrome" dir_change "chrome" if file_exists("chrome.manifest")=1 then file_delete "chrome.manifest" file_open_write 1,"chrome.manifest" file_writeln 1,"content KMappy content/" file_close 1 if dir_exists("content")=0 then dir_make "content" dir_change "content" if file_exists("KMappy.xul")=1 then file_delete "KMappy.xul" file_open_write 1,"KMappy.xul" file_writeln 1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+"?>" file_writeln 1,"<?xml-stylesheet href="+chr$(34)+"chrome://global/skin/"+chr$(34)+" type="+chr$(34)+"text/css"+chr$(34)+"?>" file_writeln 1,"<window id="+chr$(34)+"main"+chr$(34)+" title="+chr$(34)+"KMappyW"+chr$(34)+" width="+chr$(34)+"300"+chr$(34)+" height="+chr$(34)+"300"+chr$(34)+" xmlns="+chr$(34)+"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"+chr$(34)+">" file_writeln 1," <script type="+chr$(34)+"application/javascript"+chr$(34)+" src="+chr$(34)+"chrome://chrome/content/KBrowser.js"+chr$(34)+"/>" file_writeln 1," <caption label="+chr$(34)+"KMappyF"+chr$(34)+"/>" file_writeln 1," <iframe id="+chr$(34)+"content-body"+chr$(34)+" src="+chr$(34)+URL$+chr$(34)+" flex="+chr$(34)+"1"+chr$(34)+"/>" file_writeln 1,"</window>" file_close 1 if file_exists("KMappy.js")=1 then file_delete "KMappy.js" file_open_write 1,"KMappy.js" file_close 1 dir_change ".." : ' retour de \content dir_change ".." : ' retour de \chrome if dir_exists("defaults")=0 then dir_make "defaults" dir_change "defaults" if dir_exists("preferences")=0 then dir_make "preferences" dir_change "preferences" if file_exists("prefs.js")=1 then file_delete "prefs.js" file_open_write 1,"prefs.js" file_writeln 1,"pref("+chr$(34)+"toolkit.defaultChromeURI"+chr$(34)+", "+chr$(34)+"chrome://KBrowser/content/KBrowser.xul"+chr$(34)+");" file_close 1 dir_change ".." : ' retour de \préférences dir_change ".." : ' retour de \defaults if dir_exists("extensions")=0 then dir_make "extensions" if dir_exists("updates")=0 then dir_make "updates" dir_change "updates" if dir_exists("0")=0 then dir_make "0" dir_change ".." : ' retour de \updates dir_change ".." : ' retour de \KBrowser end_sub
EDITJ'ai mis à jour l'intégralité des sources de KGF.dll dans mon WebDav, dossier Sources\KGF.
Dernière édition par Klaus le Dim 30 Juin 2019 - 15:59, édité 1 fois | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 15:55 | |
| Nouvelle version: KGF.dll V8.98 du 30/06/2019Nouveautés: - BrowserCreate: si la version ...kiosk est choisie, la touche F11 est déactivée sur ce browser pour éviter de sortir du mode kioskModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. La démo: - Code:
-
' Mappy.bas
label lancer, arreter
dim res%, WB%, Browser$, NomBrowser$, Options$, url$, ID%, hnd%, x%, y%
dll_on "KGF.dll" full_space 0 panel 1 : top 1,30 : left 1,200 : width 1,800 : height 1,600 button 10 : top 10,10 : left 10,10 : caption 10,"Start" : on_click 10,lancer button 11 : top 11,35 : left 11,10 : caption 11,"End" : on_click 11,arreter combo 20 : top 20,10 : left 20,200 item_add 20,"Opera" : ' première fenêtre enfant est l'affichage seul item_add 20,"Opera Kiosk" : ' première fenêtre enfant est l'affichage seul item_add 20,"Firefox" : ' pas de fenêtre enfant item_add 20,"Firefox Kiosk" : ' pas de fenêtre enfant item_add 20,"Pale Moon" : ' pas de fenêtre enfant item_add 20,"Pale Moon Kiosk" : ' pas de fenêtre enfant item_add 20,"Chrome" : ' première fenêtre enfant est l'affichage seul item_add 20,"Chrome Kiosk" : ' première fenêtre enfant est l'affichage seul item_add 20,"Edge (inactif)" res% = dll_call2("SelectComboBoxItem",handle(20),3)
end
lancer: select item_index(20) case 1: ' Opera Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "opera" NomBrowser$ = "Mappy -" case 2: ' Opera Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "operakiosk" NomBrowser$ = "Mappy -" case 3: ' Firefox ' pour Firefox: (créer au préalable le profile UtilisateurKGF" avec l'URL "config=profiles" Options$ = " -P "+chr$(34)+"UtilisateurKGF"+chr$(34)+" -no-remote" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "firefox" NomBrowser$ = "Mappy -" case 4: ' Firefox Kiosk ' pour Firefox: (créer au préalable le profile UtilisateurKGF" avec l'URL "config=profiles" Options$ = " -P "+chr$(34)+"UtilisateurKGF"+chr$(34)+" -no-remote" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "firefoxkiosk" NomBrowser$ = "Mappy -" case 5: ' Pale Moon Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "palemoon" NomBrowser$ = "Mappy -" case 6: ' Pale Moon Kiosk Options$ = "" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "palemoonkiosk" NomBrowser$ = "Mappy -" case 7: ' Chrome Options$ = "-incognito --new-window" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "chrome" NomBrowser$ = "Mappy -" case 8: ' Chrome Kiosk Options$ = "-incognito --new-window" url$ = "https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" Browser$ = "chromekiosk" NomBrowser$ = "Mappy -" case 9: ' Edge message "Désolé - Edge n'est pas utilisable ici !" return Options$ = "" url$ = "" Browser$ = "microsoft-edge:https://fr.mappy.com/#/0/M2/THome/N151.12061,6.11309,2.3527,48.8543/Z11/" NomBrowser$ = "MicrosoftEdge" end_select ID% = dll_call5("BrowserCreate",handle(1),adr(Browser$),adr(NomBrowser$),adr(Options$),adr(url$)) return arreter: ID% = dll_call1("BrowserDelete",ID%) return end
| |
| | | Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 16:17 | |
| Bonjour klaus, Le principe est très intéressant. Mais y aurait il moyen de savoir quel explorateur est installé sur le système ? Comme cela une détection auto serait possible. qu'en penses tu ? | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 16:21 | |
| Je vais voir si j'arrive à détecter les browsers... | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 17:29 | |
| Oui, j'ai fait la fonction. Je la publierai aujourd'hui. Ca marche très bien ! | |
| | | Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 17:37 | |
| Super ! J'entrevois déjà une utilisation possible. J'attends la suite... | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 18:45 | |
| Nouvelle version: KGF.dll V8.99 du 30/06/2019Nouveautés: - nouvelle fonction: GetInstalledBrowsersModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. La démo: - Code:
-
' test_GetInstalledBrowsers.bas
dim res%, s$
alpha 1 : top 1,10 : left 1,10 alpha 2 : top 2,40 : left 2,10 : caption 2,"Navigateurs installés:" memo 3 : top 3,40 : left 3,10 : width 3,200 :height 3,200 : bar_both 3
dll_on "KGF.dll"
s$ = string$(50," ") res% = dll_call2("GetInstalledBrowsers",adr(s$),handle(3)) caption 1,"Navigateur par défaut: "+trim$(s$)
end
| |
| | | Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 30 Juin 2019 - 19:06 | |
| Génial ! Je viens de tester et ça fonctionne super bien ! Merci Klaus. Je vais essayer d'aller plus loin avec tout ça... | |
| | | Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 7 Juil 2019 - 0:49 | |
| Allo !... Houston on a un problème !... FolderSelect ne répond plus. la fonction ne renvoie plus le nom du dossier mais seulement C. - Code:
-
SUB DIRSEARCH() dim_local res% racine$="C:\" dest$=string$(255," ") res% = DLL_call4("FolderSelect",adr(racine$),adr(dest$),len(dest$),1) if res%=1 message dest$ dest$=trim$(dest$) message dest$ else message "raté !" end_if END_SUB | |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 7 Juil 2019 - 11:10 | |
| Nouvelle version: KGF.dll V9.00 du 07/07/2019
Nouveautés: - FolderSelect: réécriture complète de la fonction
Modules modifiés: KGF.dll
La doc et les sources sont inchangées.
Ceci devrait résoudre le problème de Yannick... | |
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 7 Juil 2019 - 12:33 | |
| Bonjour Klaus. J’essaie d’utiliser BrowserCreate et compagnie pour une petite application que je suis en train de créer. Je rencontre quelques difficultés. Par exemple : j’ai une série d’URL que je veux tester au choix. Je détermine mon navigateur par défaut et je l’initialise (option$,browser$,Nombrowser$) Je choisis, disons l’URL xxx et je crée mon browser par - Code:
-
ID% = dll_call5("BrowserCreate",handle(1),adr(Browser$),adr(NomBrowser$),adr(Options$),adr(url$))
Jusque là, tout va bien. Je ferme la page de l’URL que je viens de consulter pour retourner à mon programme afin de choisir une autre URL dans ma série d’URL, disons l’URL yyy et là rien ne va plus : pas possible de lancer la nouvelle URL. Surement à cause du browser crée et qui est toujours actif (en arrière plan ?). J’ajoute dans mon code une variable (flag) encours que j’initialise à 1 si le browser est actif (crée) et à 0 sinon. Avant de demander une création d’un nouveau browser, je teste le flag encours s’il est à 1 je le détruis par BrowserDelete avant de le récréer à nouveau, mais ça n’a pas marché. Peut-être que dans la soirée, je posterai un code pour montrer de quoi je parle. REMARQUEA propos de la doc, les % (à part celui de dest%) sont à remplacer par des dollars $ - Spoiler:
| |
| | | Klaus
Nombre de messages : 12289 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 7 Juil 2019 - 13:20 | |
| | |
| | | Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Dim 7 Juil 2019 - 22:29 | |
| Merci Klaus, FolderSelect répond à nouveau. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |