OVH Cloud OVH Cloud

Ouvrir une url

8 réponses
Avatar
Toph
Bonjour,

J'aimerais savoir comment faire pour que,
lorsque j'ouvre une url à partir de mon
application, ce soit toujours dans la même
fenêtre du navigateur.

En effet :

System.Diagnostics.Process.Start(url);

lance une nouvelle instance, du navigateur
par défaut, à chaque fois (sauf pour les
navigateurs à onglets).


Merci pour votre aide.

--
Il y aura toujours dans la foule un crétin qui, sous prétexte qu'il ne
comprend pas, décrétera qu'il n'y a rien à comprendre.

[Amélie Nothomb]
Extrait de Péplum

8 réponses

Avatar
Lyny
Essaie ça:



System.String MySite =
"http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx";

try

{

linkLabel1.LinkVisited = true;

System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo("IExplore.exe");

startInfo.Arguments = MySite;

System.Diagnostics.Process.Start(startInfo);

}

catch (System.Exception ex)

{

System.Windows.Forms.MessageBox.Show("Incapable d'ouvrir le lien choisis: "
+ ex.Message);

}



"Toph" a écrit dans le message de news:

Bonjour,

J'aimerais savoir comment faire pour que,
lorsque j'ouvre une url à partir de mon
application, ce soit toujours dans la même
fenêtre du navigateur.

En effet :

System.Diagnostics.Process.Start(url);

lance une nouvelle instance, du navigateur
par défaut, à chaque fois (sauf pour les
navigateurs à onglets).


Merci pour votre aide.

--
Il y aura toujours dans la foule un crétin qui, sous prétexte qu'il ne
comprend pas, décrétera qu'il n'y a rien à comprendre.

[Amélie Nothomb]
Extrait de Péplum




Avatar
Toph
> Essaie ça:



J'ai déjà essayé de passer par "ProcessStartInfo". Mais ça ne marche
pas : j'ouvre, à chaque fois, une nouvelle fenêtre du navigateur (par
défaut).

J'aurais dû préciser que le lien ouvert est différent à chaque fois (je
n'utilise pas un linkLabel) :

System.Diagnostics.Process.Start(@"http://www.le_site_web.com" +
this.MotRecherche.Text + "du_texte_encore" + server);

Je vais quand même essayer votre solution en affectant l'url à un
linkLabel.

Merci encore.

--
L'argent gagné malhonnêtement finit toujours par se venger.

[Roch Carrier]
Extrait de Le jardin des délices
Avatar
Simon Mourier [SoftFluent]
Ce n'est pas possible sans présumer d'une configuration de la machine hôte
(même si ça peut parfois marcher) car cela dépend:

1) du navigateur qui est associé à http: sur la machine hôte (ce que vous
constatez d'ailleurs avec les navigateurs à onglet)
2) de la configuration de ce navigateur

cf ici pour IE par exemple:
http://www.winguides.com/registry/display.php/1006/

Simon.
www.softfluent.com


"Toph" a écrit dans le message de news:

Essaie ça:



J'ai déjà essayé de passer par "ProcessStartInfo". Mais ça ne marche pas :
j'ouvre, à chaque fois, une nouvelle fenêtre du navigateur (par défaut).

J'aurais dû préciser que le lien ouvert est différent à chaque fois (je
n'utilise pas un linkLabel) :

System.Diagnostics.Process.Start(@"http://www.le_site_web.com" +
this.MotRecherche.Text + "du_texte_encore" + server);

Je vais quand même essayer votre solution en affectant l'url à un
linkLabel.

Merci encore.

--
L'argent gagné malhonnêtement finit toujours par se venger.

[Roch Carrier]
Extrait de Le jardin des délices




Avatar
Toph
> Ce n'est pas possible sans présumer d'une configuration de la machine hôte
(même si ça peut parfois marcher) car cela dépend:

1) du navigateur qui est associé à http: sur la machine hôte (ce que vous
constatez d'ailleurs avec les navigateurs à onglet)
2) de la configuration de ce navigateur

cf ici pour IE par exemple:
http://www.winguides.com/registry/display.php/1006/



En fait je pensais qu'il existait une méthode "générique" qui aurait pu
parfois marcher (lorsque le navigateur par défaut est IE, par
exemple). Même si elle ne marche pas lorsqu'il s'agit d'un navigateur à
onglet.

C'est ça que je cherche : la méthode qui marche "parfois".

En tout cas merci beaucoup. Je vais laisser tomber cette option qui
n'est pas très importante, finalement.

--
Plaire à soi est orgueil ; aux autres, vanité.

[Paul Valéry]
Extrait de Mélange
Avatar
Lyny
ENFIN j'ai trouvé la solution.
Pour plus de détail,va a la fin de ce URL.
http://www.microsoft.com/technet/prodtechnol/ie/reskit/6/part7/z03ie6rk.mspx?mfr=true
Voici la commande:

System.Diagnostics.Process.Start("IExplore.exe", "-new
http://www.google.com");


Alain



"Toph" a écrit dans le message de news:

Ce n'est pas possible sans présumer d'une configuration de la machine
hôte (même si ça peut parfois marcher) car cela dépend:

1) du navigateur qui est associé à http: sur la machine hôte (ce que vous
constatez d'ailleurs avec les navigateurs à onglet)
2) de la configuration de ce navigateur

cf ici pour IE par exemple:
http://www.winguides.com/registry/display.php/1006/



En fait je pensais qu'il existait une méthode "générique" qui aurait pu
parfois marcher (lorsque le navigateur par défaut est IE, par exemple).
Même si elle ne marche pas lorsqu'il s'agit d'un navigateur à onglet.

C'est ça que je cherche : la méthode qui marche "parfois".

En tout cas merci beaucoup. Je vais laisser tomber cette option qui n'est
pas très importante, finalement.

--
Plaire à soi est orgueil ; aux autres, vanité.

[Paul Valéry]
Extrait de Mélange




Avatar
Toph
> System.Diagnostics.Process.Start("IExplore.exe", "-new
http://www.google.com");



CA MARCHE !

Enfin je crois.

Le code correct est :

======================================================================= System.Diagnostics.Process.Start("http://www.google.com", "-new");
=======================================================================
Sinon message d'erreur : FileName inconnu.

Suite à votre réponse, je me suis penché de nouveau sur le pb et j'ai
trouvé ça :

======================================================================= System.Diagnostics.Process myProcess = new
System.Diagnostics.Process();

myProcess.StartInfo.CreateNoWindow = true; // ICI true = pas de
nouvelle fenêtre.
myProcess.StartInfo.FileName = "http://www.google.com";

myProcess.Start();
=======================================================================
OU

======================================================================= System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo();
startInfo.FileName = "http://www.google.com"
startInfo.CreateNoWindow = true;
System.Diagnostics.Process.Start(startInfo);
=======================================================================
Ces trois méthodes ont l'air de marcher mais lorsque je reviens au code
initial :

System.Diagnostics.Process.Start("http://www.google.com");

ça s'ouvre toujours dans la même fenêtre. ;-)
Même en mettant :

.CreateNoWindow = false;

Ou ça vient de l'ordi (Internet Explorer est le navigateur par défaut)
ou alors l'un des codes a modifié définitivement une option (ça
m'étonnerais quand même, mais bon) ou ... je ne sais pas.

Bien sûr, ça ne fonctionne pas sur un navigateur à onglet.

Je me pencherai sur la question, quand j'aurai le temps.

En tout cas, merci infniment à tous les 3, je suis sur la bonne voie.

--
Il n'y a pas de vanité intelligente.

[Louis-Ferdinand Céline]
Extrait du Voyage au bout de la nuit
Avatar
Lyny
J'ai proposé l'appel avec le IExplore.exe car le "-new" est une option
associé à ce logiciel.
Si c'est Mozilla ou autres qui est utilisé, il faudrait valider les options
disponibles en ligne de commande.
Merci pour les autres approches, je les place dans ma liste des HOWTO au cas
ou...
Alain.


"Toph" a écrit dans le message de news:

System.Diagnostics.Process.Start("IExplore.exe", "-new
http://www.google.com");



CA MARCHE !

Enfin je crois.

Le code correct est :

======================================================================= > System.Diagnostics.Process.Start("http://www.google.com", "-new");
======================================================================= >
Sinon message d'erreur : FileName inconnu.

Suite à votre réponse, je me suis penché de nouveau sur le pb et j'ai
trouvé ça :

======================================================================= > System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

myProcess.StartInfo.CreateNoWindow = true; // ICI true = pas de nouvelle
fenêtre.
myProcess.StartInfo.FileName = "http://www.google.com";

myProcess.Start();
======================================================================= >
OU

======================================================================= > System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo();
startInfo.FileName = "http://www.google.com"
startInfo.CreateNoWindow = true;
System.Diagnostics.Process.Start(startInfo);
======================================================================= >
Ces trois méthodes ont l'air de marcher mais lorsque je reviens au code
initial :

System.Diagnostics.Process.Start("http://www.google.com");

ça s'ouvre toujours dans la même fenêtre. ;-)
Même en mettant :

.CreateNoWindow = false;

Ou ça vient de l'ordi (Internet Explorer est le navigateur par défaut) ou
alors l'un des codes a modifié définitivement une option (ça m'étonnerais
quand même, mais bon) ou ... je ne sais pas.

Bien sûr, ça ne fonctionne pas sur un navigateur à onglet.

Je me pencherai sur la question, quand j'aurai le temps.

En tout cas, merci infniment à tous les 3, je suis sur la bonne voie.

--
Il n'y a pas de vanité intelligente.

[Louis-Ferdinand Céline]
Extrait du Voyage au bout de la nuit




Avatar
Toph
Chez moi (Visual C# Express) :

System.Diagnostics.Process.Start("IExplore.exe", "-new
http://www.google.com");

ça ne passe pas : FileName inconnu.

Par contre ça, ça passe :

======================================================================= System.Diagnostics.Process.Start("http://www.google.com", "-new");
=======================================================================
"-new" est considéré comme un argument.

et ça aussi :

======================================================================= System.Diagnostics.Process.Start.ProcessStartInfo startInfo = new
System.Diagnostics.Process.Start.ProcessStartInfo("IExplore.exe");

startInfo.FileName = "http://www.google.com";
startInfo.Arguments = "-new"; // <- Là

System.Diagnostics.Process.Start(startInfo);
=======================================================================
IL doit y avoir l'équivalent avec :

System.Diagnostics.Process myProcess = new System...;
.
.
.


Merci encore.

--
Le con ne perd pas son temps, il perd celui des autres.

[San Antonio]