Internet Explorer en Automatique

Résolu
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004 - 13 juil. 2004 à 23:32
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004 - 15 juil. 2004 à 18:32
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juil. 2004 à 17:26
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 !!!!
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juil. 2004 à 19:02
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 !!!!
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 juil. 2004 à 18:17
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 !!!!
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juil. 2004 à 00:30
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 !!!!
0

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

Posez votre question
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
14 juil. 2004 à 02:17
Suggestion pour aranger le problème ??
svp.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juil. 2004 à 08:49
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 !!!!
0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
14 juil. 2004 à 16:49
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;
}
0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
14 juil. 2004 à 18:05
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.

0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
14 juil. 2004 à 20:19
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 ?
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juil. 2004 à 20:39
un objet que tu utilises n'a pas été initialisé, normalement ton compilateur te dit de quel object il s'agit

Cocoricoooooooo !!!!
0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
15 juil. 2004 à 17:05
Ce matin j'ai juste recompilé et ça dit pus le
Object reference not set to an instance of an object.


Merci pour tout !
0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
15 juil. 2004 à 17:36
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...
0
cs_Doombringer Messages postés 11 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 4 août 2004
15 juil. 2004 à 18:32
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 ;-)
0
Rejoignez-nous