Ouvrir une page internet simplement

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Ouvrir une page internet simplement

Message par Octavius »

Au risque de ré-inventer encore une fois le fil à couper le beurre, je poste ce code simple qui permet d'ouvrir une page internet grâce au navigateur web par défaut de l'utilisateur (IE, firefox, etc.) en passant par un HyperLinkGadget() :

Code : Tout sélectionner

#Win=0
Enumeration
  #Text
  #Http
  #Quit
EndEnumeration

If OpenWindow(#Win,0,0,300,120,"Fenêtre de test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(#Win))
    TextGadget(#Text,10,10,280,15,"Mon texte",#PB_Text_Center)
    HyperLinkGadget(#Http,73,50,154,15,"http://www.purebasic.fr/french/",RGB(0,128,255),#PB_HyperLink_Underline)
    SetGadgetColor(#Http,#PB_Gadget_FrontColor,RGB(0,0,255))
    ButtonGadget(#Quit,120,80,60,25,"OK")
  EndIf
EndIf

Repeat
  
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Http
          ;C'est ici que c'est intéressant !!!
          ShellExecute_(GetDesktopWindow_(),"open","http://www.purebasic.fr/french/",0,0,#SW_SHOWNORMAL)
        Case #Quit
          End
      EndSelect
    Case #PB_Event_CloseWindow
      End
  EndSelect
  
ForEver
J'ai eu du mal à trouver cette astuce, elle utilise une commande de l'API Windows, je ne comprends pas d'ailleurs que cette fonction ne soit pas native avec PureBasic.
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Hum...

J'ai pas PB sous la main pour vérifier, mais....

Code : Tout sélectionner

RunProgram("http://www.google.com")
Il me semble que ça marche :)

EDIT : je viens de vérifier dans la doc :
Sous Windows RunProgram() utilise l'application par défaut associée à un type de fichier. Par exemple: RunProgram("Test.html") ouvrira le navigateur configuré sur votre système.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Arrh! :oops: :oops: :oops:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ATHOW a écrit :Hum...

J'ai pas PB sous la main pour vérifier, mais....

Code : Tout sélectionner

RunProgram("http://www.google.com")
Il me semble que ça marche :)
j'avais vu son listing et j'ai rigolé (gentiment hein :) )
parce que je me suis dit la même chose "tiens ça fait comme RunProgram()"
sont truc . :D

cependant cette Api doit surement avoir une utilité qui complète RunProgram() non ? 8O
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Je sais pas trop, en fait j'ai trouvé ça sur le forum anglais, un gars qui posait la question justement de comment ouvrir une page internet et c'était cette commande la réponse... Mais je ne comprends pas très bien l'anglais.

http://www.purebasic.fr/english/viewtopic.php?t=9666
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Octavius a écrit :Arrh! :oops: :oops: :oops:
ça me rappelle... moi y'a quelques mois :P
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Octavius a écrit :Je sais pas trop, en fait j'ai trouvé ça sur le forum anglais, un gars qui posait la question justement de comment ouvrir une page internet et c'était cette commande la réponse... Mais je ne comprends pas très bien l'anglais.

http://www.purebasic.fr/english/viewtopic.php?t=9666
En fait il ne sait pas que c'est possible avec RunProgram(), et a vu comment faire avec ShellExecute_() donc il le dit, on lui répond que c'est possible avec RunProgram().
Puis il demande comment faire pour associer un programme avec un type de fichier et enfin pour ouvrir un dossier dans l'explorer.

Et à mon avis il n'y a pas de différence entre RunProgram() et ShellExecute_() seulement que Fred nous a facilité la vie avec RunProgram() :D
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Message par case »

et aussi que shellexecute_() c'est une api windows et que pour des questions de portabilité c'est mieux d'avoir une commande commune a tout les os ou pure basic existe :)
teff
Messages : 1
Inscription : jeu. 30/oct./2008 10:18

Message par teff »

Pour les macqueux et ceussent qui soignent le côté multi-plateforme...

Sous BSD, donc sous Mac OS X (sous Linux je ne sais pas), il existe une commande du shell "open" qui s'utilise comme ça (je ne détaille aucune option):
$ open fichier.ext
Cela provoque l'ouverture de "fichier.ext" avec l'appli par défaut pour les "*.ext".
Appliqué à l'ouverture d'une url à partir de PB ça donne :

Code : Tout sélectionner

RunProgram("open", "http://www.purebasic.fr/french/", "")
Bravo et merci à ceux qui font vivre ce forum !
Répondre