Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

#1 19-09-2012 14:59:42

newbee  
Membre
Date d'inscription: 19-06-2012
Messages: 12
Pépites: 71
Banque: 0

Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Bonjour,

Je souhaite ouvrir une URL web depuis un script pb à l'aide de la méthode Run.

Pour se faire, je lance un Run sur un .bat dans lequel je fais un "start %1", %1 correspondant à l'url fournit dans la string passée à la fonction run.

en gros ça fait, Run("lanceurWeb.bat http://www.google.fr"). Là ça marche nickel, le navigateur par défaut se lance et ouvre l'url fournie en paramètre.

Là où ça coince, c'est lorsque l'url possède des paramètres et donc le caractère '='. Je ne sais pas pourquoi mais mon url est tronquée juste avant ce caractère et du coup je n'arrive pas à lancer correctement la page web souhaitée.

Savez-vous comment dire à Run de conserver la chaine telle quelle ?

Merci

Hors ligne

 

#2 19-09-2012 15:19:01

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

çà doit venir des "&" de ton url, en commande batch cela à une signification particulière tout comme les | d'ailleurs.

Tu peux faire précéder les & et les | ainsi que les ^ par ^ avant de passer ton url a Run.

Code: pb

ls_url = replaceall( ls_url, "^", "^^" )
ls_url = replaceall( ls_url, "|", "^|" )
ls_url = replaceall( ls_url, "&", "^&" )
Run("lanceurWeb.bat " + ls_url)

https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#3 19-09-2012 18:08:14

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Bonjour,

Il existe une méthode dédié dans powerbuilder pour faire cela : HyperlinkToURL

Code: pb

string ls_url
inet iinet_base

IF trim(ls_url) <> "" AND NOT IsNull(ls_url) THEN
  IF GetContextService("Internet", iinet_base) > 0 THEN  
    iinet_base.HyperlinkToURL(ls_url)
  END IF    
END IF


Parcontre cette méthode ne fonctionne plus avec les versions les plus récente de FireFox, tu peux contourner le problème de cette façon :

Code: pb

Run("rundll32 url.dll,FileProtocolHandler " + ls_url)

Hors ligne

 

#4 20-09-2012 06:06:54

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

buck a écrit:

Parcontre cette méthode ne fonctionne plus avec les versions les plus récente de FireFox, tu peux contourner le problème de cette façon :

Code: pb

Run("rundll32 url.dll,FileProtocolHandler " + ls_url)

et là on retombe sur le problème des & contenu par l'url que l'on veux donner à Run


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#5 20-09-2012 07:54:30

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Bonjour,

Non, cela fonctionne sans problème.

Hors ligne

 

#6 20-09-2012 12:01:31

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

buck a écrit:

Bonjour,

Non, cela fonctionne sans problème.

are you sure ?

Code: dos

>type test.cmd
@echo you said %%1 = "%1"
@echo you said %%2 = "%2"
@echo you said %%3 = "%3"
@echo you ask %%* = "%*"
>test test.cmd
you said %1 = "http://test.com
you said %2 = ""
you said %3 = ""
you ask %* = "http://test.com"
>test http://test.com?arg1=val1
you said %1 = "http://test.com?arg1"
you said %2 = "val1"
you said %3 = ""
you ask %* = "http://test.com?arg1=val1"
>test http://test.com?arg1=val1&arg2=val2
you said %1 = "http://test.com?arg1"
you said %2 = "val1"
you said %3 = ""
you ask %* = "http://test.com?arg1=val1"
'arg2' is not recognized as an internal or external command,
operable program or batch file.
>test http://test.com?arg1=val1^&arg2=val2
you said %1 = "http://test.com?arg1"
you said %2 = "val1&arg2"
you said %3 = "val2"
you ask %* = "http://test.com?arg1=val1&arg2=val2"

https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#7 20-09-2012 14:15:28

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Bonjour,

Code: pb

String ls_url = "http://test.com?arg1=val1^&arg2=val2"
Run("rundll32 url.dll,FileProtocolHandler " + ls_url)


http://bucaille.chez-alice.fr/pbadonf/firefox_url.jpg

Hors ligne

 

#8 20-09-2012 16:11:45

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Effectivement, ça marche sans échapper !
C'est seulement lorsque l'on passe des arguments à un fichier .bat / .cmd qu'il faut échapper alors !

Merci pour la précision


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#9 20-09-2012 17:01:45

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Je pense que l'argument de la commande run est converti implicitement par Powerbuilder.

Hors ligne

 

#10 21-09-2012 07:45:32

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

pas sûre, car j'ai essayé Run("test.cmd http://test.com?arg1=val1&arg2=val2 & pause") et là on voit que les & sont bien interprété comme étant des séparateurs de commandes :

Code: dos

you said %1 = "http://test.com?arg1"
you said %2 = "val1"
you said %3 = ""
you ask %* = "http://test.com?arg1=val1"
'arg2' is not recognized as an internal or external command,
operable program or batch file.
Press any key to continue . . .


Du coup c'est un peu logique floue...


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#11 21-09-2012 08:26:15

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Je pense que l'astuce est tout simplement la :

Code: dos

C:\>rundll32 url.dll,FileProtocolHandler "http://www.test.com?arg1=val&arg2=val2"
C:\>rundll32 url.dll,FileProtocolHandler http://www.test.com?arg1=val&arg2=val2


Le premier ouvre : http://www.test.com?arg1=val&arg2=val2
Le second ouvre : http://www.test.com?arg1=val1

Hors ligne

 

#12 21-09-2012 08:51:23

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Effectivement et en fait c'est le système windows qui semble reparser les paramètres différemment pour un .cmd ce qu'il ne fait pas pour un .exe


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » Ouverture d'une URL web avec paramètres à l'aide de la fonction Run

Pied de page des forums

Propulsé par FluxBB 1.2.22