Ouvrir url donnée sur un chan irc

Résolu
t0fx Messages postés 22 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 décembre 2009 - 16 mars 2009 à 22:33
t0fx Messages postés 22 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 décembre 2009 - 18 mars 2009 à 10:41
Salut ! Je débute en C# et j'ai commencé à coder un bot irc pour tenir mon chan ouvert quand personne n'est connecté dessus. La plupart du bot est terminé mais j'ai un ptit soucis pour ajouter une fonction... J'aimerai que le bot ouvre une page internet chez moi quand je tape une url sur mon chan... J'ai essayé comme ça :

                        if (inputLine.EndsWith(".com"))
                        {
                            int url_start = inputLine.IndexOf("http://");
                            string url_good = inputLine.Substring(url_start);
                            System.Diagnostics.Process.Start(url_good, true);


le soucis c'est que System.Diagnostics.Process.Start n'a pas l'air de vouloir fonctionner avec un string (caleçon non plus d'ailleur!)... Comment je pourrai faire pour que ça fonctionne ?
Merci d'avance !

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
17 mars 2009 à 15:15
Salut.

As-tu vérifié si url_good avait la bonne valeur ?
Le deuxième argument de Process.Start ne peut pas être un booléen. Généralement ce sont les arguments de la ligne de commande.
Si ça ne marche pas en mettant un seul argument, tu peux essayer comme ça : Process.Start(@"C:\Program Files\Mozilla Firefox\firefox.exe", url_good);

Krimog :
while (!succeed = try()) ;
3
t0fx Messages postés 22 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 décembre 2009
17 mars 2009 à 15:50
Merci pour ta réponse, le problème venait effectivement du booléen, donc jlai enlevé et ça fonctionne nikel

System.Diagnostics.Process.Start(url_good);
0
t0fx Messages postés 22 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 décembre 2009
17 mars 2009 à 20:51
Pour éviter que des url s'ouvrent trop souvent je voulai rajouter une commande. Genre taper l'url et "!visit".
Comment je peux faire pour isoler l'url ? J'ai essayé comme ça :

                        if (inputLine.EndsWith("!visit"))
                        {
                            int url_start = inputLine.IndexOf("http://");
                            string url_good = inputLine.Substring(url_start);
                            System.Diagnostics.Process.Start(url_good) - " !visit";
                            writer.WriteLine("PRIVMSG " + CHANNEL + " :" + url_good - " !visit" + " visited");
                            writer.Flush();
                            Thread.Sleep(2000);
                        }

Le soucis maintenant c'est le "-" qui accepte pas non plus les strings ou les int... Tu vois un autre moyen ? J'ai pensé à un regex mais je voulai être sur avant qu'il n'y ai pas d'autre solution.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
18 mars 2009 à 10:08
Salut

Tout d'abord, dans la conception, cette ligne est mauvaise : System.Diagnostics.Process.Start(url_good) - " !visit";
Au niveau des types tu es en train de faire : Process - string
Si (je dis bien si) on pouvait utiliser l'opérateur - sur des strings, il aurait fallu écrire System.Diagnostics.Process.Start(url_good - " !visit");

Ensuite, le - n'est pas surchargé sur un string. Tu ne peux donc pas l'utiliser. Pour enlever un texte précis d'un string, il faut le remplacer par rien :
url_good.Replace(" !visit", string.Empty);

De plus, effectivement, si tu veux jouer de manière plus aboutie avec les strings, je te conseille de regarder les expressions régulières et la classe Regex, ce sera plus simple à faire et plus efficace.

Krimog :
while (!succeed = try()) ;
0

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

Posez votre question
t0fx Messages postés 22 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 décembre 2009
18 mars 2009 à 10:41
merci ça fonctionne parfaitement, je vais garder ça en attendant de comprendre comment marche la classe regex.
Encore un grand merci à toi !
0
Rejoignez-nous