Ouvrir URL + arg (.htm?toto)

fx_forum Messages postés 6 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 24 avril 2007 - 23 avril 2007 à 16:43
fx_forum Messages postés 6 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 24 avril 2007 - 24 avril 2007 à 09:35
Bonjour,

J'ecris une petite interface en visual basic avec MS Visual Studio 2005.

Un click sur un bouton doit m'ouvrir une page html avec des arguments dans l'url (ex : "d:/toto.html?tata=titi")

La commande System.Diagnostics.Process.Start("d:/toto.html") ouvre correctement la page html ;  mais la commande System.Diagnostics.Process.Start("d:/toto.html?tata=titi") plante parce que le système cherche le fichier d:/toto.html?tata=titi qui n'existe évidemment pas ...

Bizarre ! alors que la commande mailto accepte les arguments en ? ...

Y aurait-il un moyen de contourner ce fichu bug ? Une astuce ou bien une autre commande ?

Un grand merci !

5 réponses

hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
23 avril 2007 à 16:53
je ne suis pas sur que cela soit un bug...
un fichier local n'accepte pas d'argument si il n'est pas parsé par un interpreteur php, asp ou autre...

comment recupere tu la variable dans la page html..???

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
0
fx_forum Messages postés 6 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 24 avril 2007
23 avril 2007 à 17:08
Le fichier d:/toto.html est un frameset :
<html>
<head>
    <title>ATP</title>
    <link rel="shortcut icon" href="./utils/icons/lib.ico" type="image/x-icon" />
</head>
<frameset cols="200,*" frameborder="yes" border=2>
    <frame src="./utils/menu.html" name="menu">
    <frame src="./utils/link.htm" name="main">
</frameset>
</html>
L'argument tata=titi est en fait utilisé par link.htm. Cette bidouille me permet de naviguer soit via le menu soit via l'interface VB. Voici link.htm :
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">

<script language="JavaScript">
    link = "../contents/"
    framelink=window.location.search.substring(1)
    parentlink=parent.location.search.substring(1)
    <!-- redirect the link to the url specified in the menu or in the url -->
    if(framelink)          {link=link.concat(framelink)}
    else if(parentlink)    {link=link.concat(parentlink)}
    else                   {link=link.concat("header/header.htm")}
    window.open(link,"main")
</script>

</html>
Si je navigue à partir du menu, l'adresse du document est envoyée dans l'url de link.htm puis récupérée par framelink.
Si je navigue à partir de l'interface, l'adresse est dans l'url du frameset toto.html puis récupérée par parentlink.
Comme ca, j'avais toujours mon menu ...

Ca marche nickel sous IE et Firefox. Le hic, c'est que je n'arrive pas à linker le VB ...
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
23 avril 2007 à 17:19
hmm ouais c'est overbidouillé quand même...
et en fesant
System.Diagnostics.Process.Start(

"d:/toto.html",
"tata=titi")

ça ne passe pas?

sinon la ruse serait de faire un shell sur l'explorer lui meme (donc la par contre pas moyen de lancer selon la config du type)

System.Diagnostics.Process.Start("iexplore.exe", "d:/toto.html?tata=titi"
)

(ou pareil avec firefox)

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
23 avril 2007 à 17:20
tain faut vraiment faire qqc pour ce problème de copier collé entre vs2005 et codes-sources.com

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fx_forum Messages postés 6 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 24 avril 2007
24 avril 2007 à 09:35
La commande System.Diagnostics.Process.Start("d:/toto.html", "tata=titi")
n'arrange rien car n'est pas pris en argument.

La commande System.Diagnostics.Process.Start("iexplore.exe","d:/toto.html?tata=titi")
foire pour la même raison

Enfin le ucandoit.bat suivant plante parce que là encore, le système cherche d:/toto.html?tata=titi au lieu 
d:/toto.html!!
"C:\Program Files\Internet Explorer\iexplore.exe" "
d:/toto.html?tata=titi"

Je suis preneur de toute solution : autre commande vb, bat externe, c++/exe externe, ... bref n'importe quoi du moment que le système ne s'emmele pas les pinceaux
0
Rejoignez-nous