Tom's Guide > Forum > Programmation > [Résolu] Boucles

Lire la meilleure réponse, apportée par OmaR.

Mot :    Pseudo :           
 

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

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.

Code :
  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.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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 ?

Répondre à snot224

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

Répondre à Oneilus

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 ?

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

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

Répondre à Oneilus

Tu n'as pas répondu à mes deux premières lignes ;)

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Mes competences se limitent aux bases de php, apres je me debrouille avec des tuto.

Merci

Répondre à Oneilus

Ok, laisse moi quelques minutes pour faire un petit programme vite fait

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Tiens: http://rapidshare.com/files/191162 [...] s.rar.html

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:

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using WatiN.Core;
  5. namespace BotOneilus
  6. {
  7.     class Program
  8.     {
  9.         public static IE ie;
  10.         [STAThread]
  11.         static void Main(string[] args)
  12.         {
  13.             List<string> pages = GetPages();
  14.             InitializeIE();
  15.             foreach (string page in pages)
  16.             {
  17.                 ie.GoTo(page);
  18.             }
  19.             CloseIE();
  20.         }
  21.         static void InitializeIE()
  22.         {
  23.             IE.Settings.AutoMoveMousePointerToTopLeft = false;
  24.             IE.Settings.WaitForCompleteTimeOut = 60;
  25.             IE.Settings.WaitUntilExistsTimeOut = 60;
  26.             ie = new IE();
  27.         }
  28.         static void CloseIE()
  29.         {
  30.             ie.Close();
  31.             ie.Dispose();
  32.         }
  33.         static List<string> GetPages()
  34.         {
  35.             var pages = new List<string>();
  36.             if(!File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "pages.txt" )))
  37.             {
  38.                 throw new Exception("Le fichier pages.txt n'existe pas, veuillez le créer avec la liste des pages à visiter, une par ligne." );
  39.             }
  40.             using (FileStream fs = File.Open(Path.Combine(Directory.GetCurrentDirectory(), "pages.txt" ), FileMode.Open, FileAccess.Read))
  41.             {
  42.                 using (var sr = new StreamReader(fs))
  43.                 {
  44.                     while (sr.Peek() >= 0)
  45.                     {
  46.                         string page = sr.ReadLine();
  47.                         if (string.IsNullOrEmpty(page))
  48.                             continue;
  49.                         pages.Add(page);
  50.                     }
  51.                 }
  52.             }
  53.             return pages;
  54.         }
  55.     }
  56. }

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

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 !

Répondre à Oneilus

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 :)

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

no il quitte avant la fin, en mode le processus a cessé de fonctionner.
comme si il plantai

Répondre à Oneilus

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

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

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/?li [...] cid=0x040c

Répondre à Oneilus

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

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

comment je peut changer ce timeout ?

merci

Répondre à Oneilus

C'est directement dans le programme...
Ta dernière page a besoin de beaucoup de temps pour se charger ?

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

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.

Répondre à Oneilus

Ok, je vais modifier le programme pour que tu puisses le paramétrer.
D'ici 2-3 minutes...

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Meilleure réponse

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.

Code :
  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.

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Merci ca marche maintenant :)

Super son soft, tu utilise quel logiciel pour compiler tout ça ?

Répondre à Oneilus

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.

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Tom's Guide > Forum > Programmation > [Résolu] Boucles
Aller à :

Il y a 3055 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens