Se connecter / S'enregistrer

Résolu Boucles

Solutions (23)
Tags :
  • Programmation
|
Bonjour,

J'aimerais creer une page qui contiens une sort de boucle while:

En gros je doit crer une fonction qui réalise les actions suivantes:

1-Ouvrir un lien dans un popup
2-Attendre que la page dans le popup soit entièrement chargé.
3-Puis Ouvire un autre lien dans un popup
4-Attendre que la page dans le popup soit entièrement chargé.
......

Et ainsi de suite.

Merci d'avance pour votre aide
Contenus similaires
Meilleure solution
partage
, Modérateur |
Alors, ici pour le télécharger : http://www.filedropper.com/botoneilus

Tu vas avoir un nouveau fichier dedans qui se nomme BotOneilus.exe.config, il va permettre de configurer le temps avant que ça passe en timeout.
Tu édites le fichier avec le bloc notes (par exemple), et tu modifies la value.

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <appSettings>
  4. <add key="TimeOut" value="60" />
  5. </appSettings>
  6. </configuration>


Dans le code, tu remplaces 60 par la valeur que tu veux que le programme attende, en secondes.
  • Commenter cette solution |
Score
0
òh
òi
|
oki merci encore pour ton aide :) 
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Alors, le langage c'est du C#, et pour compiler tout ça, j'utilise Visual Studio.

Pour tout ce qui est de la gestion d'Internet Explorer, j'utilise WatiN.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci ca marche maintenant :) 

Super son soft, tu utilise quel logiciel pour compiler tout ça ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Ok, je vais modifier le programme pour que tu puisses le paramétrer.
D'ici 2-3 minutes...
  • Commenter cette réponse |
Score
0
òh
òi
|
non toutes les pages ont besoin de temps pour se charger, car la base de donnes est grosse et il y a beaucoup de donnes a mettre a jour.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
C'est directement dans le programme...
Ta dernière page a besoin de beaucoup de temps pour se charger ?

  • Commenter cette réponse |
Score
0
òh
òi
|
comment je peut changer ce timeout ?

merci
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
C'est qu'il y a eu une timeout.
J'ai mis le timeout à 60 secondes pour chaque page.
Si la page met plus de 60 secondes à se charger, ça va planter
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai bien la 3.5 installé, ca ne marche toujours pas, ca plante au bout du 3eme lien

Voila le message d erreur en détail:

Description :
Stopped working

Signature du problème :
Nom d’événement de problème: CLR20r3
Signature du problème 01: botoneilus.exe
Signature du problème 02: 1.0.0.0
Signature du problème 03: 4981d0c3
Signature du problème 04: WatiN.Core
Signature du problème 05: 1.3.0.4000
Signature du problème 06: 48f4fe24
Signature du problème 07: 580
Signature du problème 08: 16
Signature du problème 09: WatiN.Core.Exceptions.Timeout
Version du système: 6.0.6001.2.1.0.256.1
Identificateur de paramètres régionaux: 1036

Lire notre déclaration de confidentialité :
http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x04...
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Assure toi d'avoir le framework .net 3.5 (j'ai oublié de le faire en version 2.0...)
sinon tu peux le télécharger sur le site de microsoft
  • Commenter cette réponse |
Score
0
òh
òi
|
no il quitte avant la fin, en mode le processus a cessé de fonctionner.
comme si il plantai
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Le programme cesse de fonctionner dès qu'il a visité toutes les pages qui sont inscrites dans le fichier pages.txt
Il a fini son travail alors il se quitte :) 

Sinon, pour le lancer depuis ton site ça risque d'être un peu tendu...

Ce que tu peux faire sinon, c'est de paramétrer son exécution dans le planificateur de tâches afin qu'il se lance toutes les X minutes/heures/jours...

Si tu veux quelque chose d'autre, fais le savoir :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci, ca a l'air de marcher seulement au bout de quelques instants, le programme decce de fonctionner :( 

Et y a-til un moyen d'exécuter ce programme grâce a mon site, c'est à dire sans avoir besoin de passer par mon PC pour lancer le programme.Comme cela la mise a jour de ma base serai complètement auto.

Encore merci !
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Tiens: http://rapidshare.com/files/191162573/BotOneilus.rar.ht...

Tu télécharges ce dossier rar, tu auras dedans 4 fichiers:
- BotOneilus.exe
- deux DLL
- un fichier pages.txt

Edites le fichier pages.txt et ajoutes les pages que tu veux visiter (une par ligne), je t'en ai mis deux pour montrer comment ça se passe.
Ensuite, tu lances le fichier exécutable BotOneilus.exe. Ca va démarrer Internet Explorer et visiter toutes les pages une par une que tu as écrit dans le fichier, dans cet ordre là.

Avec Vista, il est possible qu'avec les nouvelles mesures de sécurité, il faille désactiver le mode protégé.

Et si la source t'intéresse:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using WatiN.Core;
  5.  
  6. namespace BotOneilus
  7. {
  8. class Program
  9. {
  10. public static IE ie;
  11.  
  12. [STAThread]
  13. static void Main(string[] args)
  14. {
  15. List<string> pages = GetPages();
  16. InitializeIE();
  17.  
  18. foreach (string page in pages)
  19. {
  20. ie.GoTo(page);
  21. }
  22. CloseIE();
  23. }
  24.  
  25. static void InitializeIE()
  26. {
  27. IE.Settings.AutoMoveMousePointerToTopLeft = false;
  28. IE.Settings.WaitForCompleteTimeOut = 60;
  29. IE.Settings.WaitUntilExistsTimeOut = 60;
  30. ie = new IE();
  31. }
  32.  
  33. static void CloseIE()
  34. {
  35. ie.Close();
  36. ie.Dispose();
  37. }
  38.  
  39. static List<string> GetPages()
  40. {
  41. var pages = new List<string>();
  42. if(!File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "pages.txt")))
  43. {
  44. throw new Exception("Le fichier pages.txt n'existe pas, veuillez le créer avec la liste des pages à visiter, une par ligne.");
  45. }
  46.  
  47. using (FileStream fs = File.Open(Path.Combine(Directory.GetCurrentDirectory(), "pages.txt"), FileMode.Open, FileAccess.Read))
  48. {
  49. using (var sr = new StreamReader(fs))
  50. {
  51. while (sr.Peek() >= 0)
  52. {
  53. string page = sr.ReadLine();
  54. if (string.IsNullOrEmpty(page))
  55. continue;
  56. pages.Add(page);
  57. }
  58. }
  59. }
  60. return pages;
  61. }
  62. }
  63. }
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Ok, laisse moi quelques minutes pour faire un petit programme vite fait
  • Commenter cette réponse |
Score
0
òh
òi
|
Mes competences se limitent aux bases de php, apres je me debrouille avec des tuto.

Merci
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Tu n'as pas répondu à mes deux premières lignes ;) 
  • Commenter cette réponse |
Score
0
òh
òi
|
oui c'est exactement ça, car claques liens permet de rafraichir ma base de donnes, et je ne peut en lancer que trois à la fois sinon j'ai un message d'erreur de la base de donne précisent que le nombre d'utilisateur est au max.
Le truc serai donc de lancer 3 par 3 les liens en sachant qu'il faut attendre que les pages soient chargées pour passer aux 3 autres.

Merci
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Quelles compétences as-tu en programmation ?
As-tu des connaissances en C# ? Si oui, tu peux regarder au niveau de WaTiN, qui te permet d'automatiser le fonctionnement d'un navigateur et de naviguer selon ce que tu lui dis.

Parce que là, ce que tu veux, c'est pas quelque chose pour les utilisateurs, ça serait juste quelque chose pour toi pour automatiser une tâche (d'ouvrir quelques liens les uns à la suite des autres), c'est ça ?
  • Commenter cette réponse |
Score
0
òh
òi
|
up :( 
  • Commenter cette réponse |
Score
0
òh
òi
|
En fait je doit créer un script qui permette de mettre a jours ma base de donne:
pour cela j'ai des pages qui lancent la mise a jours automatiquement quand on la visite.Chaque page correspond a une donne sur ma base de donne.

Donc mon objectif est de faire un script qui m'éviterai de devoir moi même aller visitez chaque page pour mettre a jours ma base.

Je sait pas si c'est clair..

Merci d'avance

  • Commenter cette réponse |
Score
0
òh
òi
|
Je ne voie pas trop la difficulté là, tu peut facilement le faire en Javascript !

onLoad = tafonction();

Lorsque ta page est fini de chargée il exécute ta fonction

Seulement ton procédé d'ouvrir des popups, tout les navigateurs te bloquerons, et même si ils ne te bloquent pas c'est une boucle infini qui te bouffera la mémoire et plantera ton navigateur, bref je ne voie pas l'utilité que tu veux en faire ?
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS