PureBasic

Forums PureBasic
Nous sommes le Mer 23/Oct/2019 6:05

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
 Sujet du message: WebGadget compatible HTML5
MessagePosté: Lun 06/Oct/2014 19:07 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6856
Localisation: IDF (Yvelines)
Un webgadget compatible HTML5. L’exécutable sera vu comme un navigateur compatible Internet explorer 11 et sera enregistré dans la base de registre.

Le numéro de version du navigateur se trouve dans la procédure Start.
Code:
Procedure Start()
  RegCreateKeyValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", GetFilePart(ProgramFilename()), "11001", #REG_DWORD, ".")
  MainFormShow() 
EndProcedure
Modifié le code 11001 par 10001 si vous souhaitez passer en version 10.

D'autres code de navigateurs sur ce lien http://msdn.microsoft.com/en-us/library/ie/ee330730(v=vs.85).aspx

Le code complet qui ouvre le site http://html5test.com afin de voir le résultat.
Code:
;WebGadget HTML5 compatible
;Contributor: Sphere Users Pure Basic
;
;Create 29-08-2014
;Update 29-08-2014
;

Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #URL
  #WebGadget
EndEnumeration

Global Url.s="http://html5test.com/"

;-
;- U.T. Registry
Procedure RegConvertRegKeyToTopKeyAndKeyName(Key.s)
 
  Shared topKey,KeyName.s
 
  temp.s=StringField(Key,1,"\")
  temp=UCase(temp)
  Select temp
    Case "HKEY_CLASSES_ROOT"
      topKey=#HKEY_CLASSES_ROOT
    Case "HKEY_CURRENT_USER"
      topKey=#HKEY_CURRENT_USER
    Case "HKEY_LOCAL_MACHINE"
      topKey=#HKEY_LOCAL_MACHINE
    Case "HKEY_USERS"
      topKey=#HKEY_USERS
    Case "HKEY_CURRENT_CONFIG"
      topKey=#HKEY_CURRENT_CONFIG
  EndSelect
 
  PositionSlash=FindString(Key,"\",1)
  KeyName.s=Right(Key,(Len(Key)-PositionSlash))
 
EndProcedure

ProcedureDLL RegSetValue(Key.s, ValueName.s, Value.s, Type, ComputerName.s) ; Sets a Value
 
  ;Type can be #REG_SZ / #REG_DWORD / #REG_BINARY / #REG_EXPAND_SZ
  ;For REG_BINARY type use Hexa value as String
  ;Returns 1 if successful or 0 if it fails
 
  Shared RegWow64.l,RegEx,topKey,KeyName.s
  RegConvertRegKeyToTopKeyAndKeyName(Key)
 
  If ComputerName = "."
    If RegEx
      GetHandle = RegOpenKeyEx_(topKey,KeyName,0,#KEY_ALL_ACCESS|RegWow64,@hKey)
    Else
      GetHandle = RegOpenKey_(topKey,KeyName,@hKey)
    EndIf
  Else
    lReturnCode = RegConnectRegistry_(ComputerName,topKey,@lhRemoteRegistry)
    If RegEx
      GetHandle = RegOpenKeyEx_(lhRemoteRegistry,KeyName,0,#KEY_ALL_ACCESS|RegWow64,@hKey)
    Else
      GetHandle = RegOpenKey_(lhRemoteRegistry,KeyName,@hKey)
    EndIf
  EndIf
 
  If GetHandle = #ERROR_SUCCESS
    lpcbData = 255
    lpData.s = Space(255)
   
    Select Type
       
      Case #REG_EXPAND_SZ
        GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_EXPAND_SZ, @Value, Len(Value) + 1)
       
      Case #REG_SZ
        GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_SZ, @Value, Len(Value) + 1)
       
      Case #REG_DWORD
        lValue = Val(Value)
        GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_DWORD, @lValue, 4)
       
      Case #REG_BINARY
        LenBuffer=Len(Value)/2
        *RegBuffer=AllocateMemory(LenBuffer)
        For n=0 To LenBuffer-1
          OctetHexa.s=Mid(Value,(n*2)+1,2)
          Octet=Val("$"+OctetHexa)
          PokeB(*RegBuffer+n,Octet)
        Next
        GetHandle= RegSetValueEx_(hKey,ValueName,0,#REG_BINARY,*RegBuffer,LenBuffer)
        FreeMemory(*RegBuffer)
       
    EndSelect
   
    RegCloseKey_(hKey)
    ergebnis = 1
    ProcedureReturn ergebnis
  Else
    RegCloseKey_(hKey)
    ergebnis = 0
    ProcedureReturn ergebnis
  EndIf
EndProcedure

ProcedureDLL RegCreateKey(Key.s, ComputerName.s)
 
  ;It create subkey if KeyPath don't exist
  ;Returns 1 if successful or 0 if it fails
 
  Shared RegWow64.l,RegEx,topKey,KeyName.s
 
  RegConvertRegKeyToTopKeyAndKeyName(Key) 
  lpSecurityAttributes.SECURITY_ATTRIBUTEs
 
  If ComputerName = "."
    If RegEx
      GetHandle = RegCreateKeyEx_(topKey,KeyName,0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS|RegWow64,@lpSecurityAttributes,@hNewKey,@GetHandle)
    Else
      GetHandle = RegCreateKey_(topKey,KeyName,@hNewKey)
    EndIf
  Else
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If RegEx
      GetHandle = RegCreateKeyEx_(lhRemoteRegistry,KeyName,0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS|RegWow64,@lpSecurityAttributes,@hNewKey,@GetHandle)
    Else
      GetHandle = RegCreateKey_(lhRemoteRegistry,KeyName,@hNewKey)
    EndIf
  EndIf
 
  If GetHandle = #ERROR_SUCCESS
    GetHandle = RegCloseKey_(hNewKey)
    CreateKey = #True
  Else
    CreateKey = #False
  EndIf
  ProcedureReturn CreateKey
EndProcedure

ProcedureDLL RegCreateKeyValue(Key.s,ValueName.s,Value.s,Type,ComputerName.s) ; Creates a Key and a Value in a Single Command
 
  ;Type can be #REG_SZ or #REG_DWORD
  ;Returns 1 if successful or 0 if it fails
 
  RegCreateKey(Key,ComputerName)
  ProcedureReturn RegSetValue(Key,ValueName,Value,Type,ComputerName)
EndProcedure

;-
;-Test Area
Procedure NavigationCallback(Gadget, NewUrl.s)
  Debug "new " + NewUrl + " - " + "old " + Url
 
  If NewUrl <> Url
    SetGadgetText(Gadget, NewUrl)
    Url = NewUrl 
  EndIf
 
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

Procedure MainFormShow()
  OpenWindow(#MainForm, 0, 0, 1024, 768,"WebGadget HTML5 compatible",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  WebGadget(#WebGadget, 0, 0, 1024, 768, Url)   
  ;SetGadgetAttribute(#WebGadget, #PB_Web_NavigationCallback, @NavigationCallback()) 
  SetGadgetAttribute(#WebGadget, #PB_Web_BlockPopups, #True) 
  SetGadgetAttribute(#WebGadget, #PB_Web_BlockPopupMenu, #True)
 
  myBrowser.IWebBrowser2 = GetWindowLong_(GadgetID(#WebGadget), #GWL_USERDATA)
  myBrowser\put_Silent(#True) ;Suppress error warnings in WebGadget
  myBrowser\put_Left(0)
EndProcedure

Procedure Start()
  RegCreateKeyValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", GetFilePart(ProgramFilename()), "11001", #REG_DWORD, ".")
  MainFormShow() 
EndProcedure

Start()

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Lun 06/Oct/2014 20:49 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8768
ça c'est trop cool :) Merci Falsam.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mar 07/Oct/2014 17:28 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6658
Localisation: Isere
J'ai pas tout compris, mais en tout cas merci pour le lien de test, je connaissais pas et ça va m'etre tres utile 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mar 07/Oct/2014 18:15 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3702
Kwai chang caine a écrit:
J'ai pas tout compris, mais en tout cas merci pour le lien de test, je connaissais pas et ça va m'etre tres utile 8)


T'es parti trop longtemps, ça fait plus de deux ans que le sujet à été lancé:
http://www.purebasic.fr/french/viewtopic.php?f=6&t=12762


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mar 07/Oct/2014 21:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6658
Localisation: Isere
Merci beaucoup NICO, cette fois ci j'ai tout compris. 8)
C'est vrai j'avais aussi remarqué la perte de firefox pour le webgadget.
Grace à ce site j'ai compris pourquoi aucun code de spider ne fonctionne sur mon vieil IE du boulot :?

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mar 07/Oct/2014 22:06 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8768
Salut KCC,
et jamais à ton boulot ils vont mettre à jour leur navigateur voir (je n'ose le dire), leur machine ? :mrgreen:

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mer 08/Oct/2014 9:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6658
Localisation: Isere
Salut mon grand :D

T'as raison...si tu savais avec quoi je bosse 10h/jours :|
Encore je vais pas me plaindre ça c'est ammélioré..enfin au niveau OS on viens d'avoir W7 normal y annonce W10 ...et IE8 :mrgreen:
Ils ont changé les portables, mais pour les moins chers, du DELL, pas de lecteur CD, des prises mixtes USB et j'sais pas quoi

En fait, le pire c'est l'active directory et l'UAC (Encore plus bridé qu'un chinois en pleine action aux toilettes :? ), les proxy et les antivirus.
J'suis interdit d'installer quoi que ce soit, avant j'avais des autorisations admin sur ma machine, mais maintenant j'suis puni, à cause des alertes virus constantes ..
Apres on est interdit de WIFI, et sur tout ce qui pourrait divertir, les sites sociaux "Face de chevre", rencontre, etc...mais aussi la musique, les images...
J'te parle pas aussi .... interdiction de pas mal de sites de téléchargement comme dropbox par exemple, alors quand les copains posent quelque chose dessus, KCC y'a pas droit :cry:
J'ai aucune image presque sur le forum, j'ai des croix rouges à la place, remarque c'est comme à l'école...j'arrivais jamais à en avoir...pas assez gentil et pas mal de croix rouge sur mes carnets :roll:

Et pour finir ce put#~é^¨$^!: de NORTON qui arrete pas de m'effacer mes exe PB et les autres...tout ce qui est outil intrusif de programmation..
Tiens ça me fait penser qui me laisse mes photos de filles nues :mrgreen: remarque c'est plutot du domaine du VICERUS :oops:
C'est un combat de tout les jours de programmer au boulot, personne pour m'aider, des questions dans tous les domaines, heureusement que j'adore ça et que depuis huit courtes années à connaitre les copains et PB, j'ai un peu de quoi me remonter le moral :cry:

En fin de compte on devrait renommer la cour du batiment "tiananmen" :lol: :lol:

Pour ce qui est des vieilles machines c'est chez moi, et c'est ma faute :oops:
Juste des carcasses avec des fils qui pendent...quand il n'y a pas le disque dur ou cd, qui pend au bout :oops:
En fin de compte c'est le meilleur des antivols..à notre epoque plus grand monde a le courage de bosser avant d'utiliser ...
Et mon super XP :mrgreen:
En fait j'ai noir de machines neuves...mais elles sont dans leur carton...ou chacune dans une jolie valise, avec de la ouate......j'ai peur de les user...je les aimes trop :lol:

En fin de compte toutes ces difficultés m'entrainent à une formation de commando informatique...je serais peut etre un jour le "RAMBO du BIT", deja que je suis une "B.. de la PROG" :mrgreen:
Avec deux morceaux de silicium, un coutelas (Coucou rahan :wink:) et une pile, je serais capable d'aller sur internet :lol:

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Mer 08/Oct/2014 10:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 07/Avr/2005 1:06
Messages: 1489
Localisation: Rennes
Ta boite devrait installer un terminal server, ils auraient eu la meme chose a moindre coup, puisqu'il suffit juste de "terminaux" passifs se connectant au serveur :mrgreen:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: WebGadget compatible HTML5
MessagePosté: Jeu 09/Oct/2014 8:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6658
Localisation: Isere
Avant on avait ça, des maxi IBM 3270 ou AS400 enfin des trucs que j'ai jamais vu et qui prenaient des batiments entiers.
D'ailleur une partie de notre architecture est toujours sous le format 3270 / AS400 c'est pourquoi j'utilise des emulateurs en OLE
On est passé à la micro, il y a presque 30 ans...on progresse :mrgreen:

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye