Internet Explorer en Automatique

[Résolu]
Signaler
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004
-
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004
-
Bon, je voulais faire un programme qui change automatiquement les pages internet de Internet Explorer tous les X secondes. Bon, j'ai réussi quelque peu mais en utilisant un switch/case : jusqu'a là, tout marchait bien. Mais je me suis dit : pourquoi ne pas aller chercher les addresses au hasard dans un .txt ? J'ai essayé de faire quelque chose et là, mon code ne compile plus, j'comprends pus rien !!!

jetez un oeil dessus : http://kv2k.site.voila.fr/Iexplore_tests.rar

13 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
il faudrais peut etre que tu stockes ce que te retourne ta methode :

public void TimerOnTick(object obj, EventArgs ea)
{
string url2 = baba();
Object o = null;
iexplorer.Navigate(url2, ref o, ref o, ref o, ref o);
}


Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
while((url2=file.ReadLine())!=null)

tu lis ton fichier jusqu'a ce que tu atteignes la fin de ce fichier
or si tu atteint ton numéro de ligne tu fermes le fichier
if(currentLine==randomNum)
{
file.Close();
}

mais la boucle de lecture continue elle, comme tu n'as pas encore atteint la fin

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
avariable étant déclarée dans la methode something, elle est détruite a la fin de celle ci, donc tu ne peux pas l'utiliser dans l'autre methode
si tu veux y acceder depuis plusieurs methodes de ta classe alors avariable doit etre membre de la classe

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
ben le message me semble plutot clair pourtant
tu appelles baba avec comme parametre url2
or url2 n'est pas accessible a cet endroit là

Cocoricoooooooo !!!!
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

Suggestion pour aranger le problème ??
svp.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
o_O
ben ça depend de l'organisation de ton programme
mais bon comme apparemment tu as tout mit dans le Form1 ben tu n'as qu'a declarer une string membre de cette classe

Cocoricoooooooo !!!!
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

Mais pourquoi dans ce code, url2 ne peut pas être utiliser par TimerOnTick, puisque je fais "return url2" a la fin de baba() ?

public void TimerOnTick(object obj, EventArgs ea)
{
baba();
Object o = null;
iexplorer.Navigate(url2, ref o, ref o, ref o, ref o);
}
public string baba()
{
string url2;
int currentLine = 0;
StreamReader file = new StreamReader("sites.txt");
Random generator = new Random();
int randomNum = Convert.ToInt32((getNumberOfLines()*generator.NextDouble())+1);
while((url2=file.ReadLine())!=null)
{
currentLine++;
if(currentLine==randomNum)
{
file.Close();
}
}
return url2;
}
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

J'ai essayé, mais quand yé rendu au TimerOnTick() , ya une erreur qui dit : "Cannot read from a closed TextReader" mais y me semblait que lorsqu'on crée un StreamReader, ça l'ouvre automatiquement, me trompai-je ?

Qu'est-ce que je dois faire ? Passque javais déja eu cette erreur là dans ce projet et je comprends toujours pas comment arranger ça.

C'que ca dit dans le message d'erreur (je sais trop pas cque ca veut dire)

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ObjectDisposedException: Cannot read from a closed TextReader.
   at System.IO.__Error.ReaderClosed()
   at System.IO.StreamReader.ReadLine()
   at Iexplore_tests.Form1.baba()
   at Iexplore_tests.Form1.TimerOnTick(Object obj, EventArgs ea)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.Callback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
IexploreAutomation
    Assembly Version: 1.0.1656.19791
    Win32 Version: 1.0.1656.19791
    CodeBase: file:///C:/Frederic/Projets/C%23/Iexplore%20tests/Iexplore%20tests/bin/Release/IexploreAutomation.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
Interop.SHDocVw
    Assembly Version: 1.1.0.0
    Win32 Version: 1.1.0.0
    CodeBase: file:///C:/Frederic/Projets/C%23/Iexplore%20tests/Iexplore%20tests/bin/Release/Interop.SHDocVw.DLL
----------------------------------------

************** JIT Debugging **************
To enable just in time (JIT) debugging, the config file for this
application or machine (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the machine
rather than being handled by this dialog.

Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

okay, j'ai changé le :

while((url2=file.ReadLine())!=null)
{
if(currentLine==randomNum)
{
file.Close();
}
return url2;
}


pour ceci :

while((url2=file.ReadLine())!=null)
{
currentLine++;
if(currentLine==randomNum)
{
 return url2;
}
}
return url2;


Mais la, j'ai ENCORE (scuse moi) une nouvelle erreur :
Object reference not set to an instance of an object.


Pourquoi ca fait ca ?
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
un objet que tu utilises n'a pas été initialisé, normalement ton compilateur te dit de quel object il s'agit

Cocoricoooooooo !!!!
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

Ce matin j'ai juste recompilé et ça dit pus le
Object reference not set to an instance of an object.


Merci pour tout !
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

Hm... Dernière question, comment je peut faire pour changer une variable d'un controle a partir d'un autre genre

private void something()
{
   int avariable = 1
}

private void somethingelse()
{
 avariable = 2
}


genre kekchose comme ca mais ca, ca marche pas...
Messages postés
11
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
4 août 2004

ouais, j'ai trouvé seul après genre 2 min, désolé pour le dérangement mais merci quand même.

J'ajoute ma source au site avec des remerciements ;-)