[R] Savoir quand une fenêtre de répond plus

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

[R] Savoir quand une fenêtre de répond plus

#1

Message par timmalos »

Y'a t'il un moyen de savoir si la fenêtre répond ou non? Les Winget... se servent t'il de la fenetre et parviennent t'il a repondre si la fenetre ne repond pas???

Dans un script , je lance IE, mais vous connaissez sa legendaire stabilité, en entreprise c'est IE 6 pour ce que je veux faire et quelques fois au démarrage il freeze et ne répond plus. J'aimerai alors que mon script reagisse.


Merci d'avance des réponses.
Tim
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#2

Message par GhostLine »

Et si tu utilises la fonction WinExist avec comme argument un truc du genre ("pas de réponse") (je ne me rappelle plus du message exact de Windows lorsqu'une tâche ne répond plus), ça pourrait coller ? Avec un Opt("WinTitleMatchMode", 2).
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#3

Message par Tlem »

Je ne sais pas si ca peut aider, mais sur le forum Anglais, j'avais trouvé un script qui permettait de lancer une application et d'attendre (en surveillant) que celle-ci soit inactive (le terme de ma recherche était 'process idle').

Sinon, une autre idée :
Puisque tu lance l'application, tu à son handle et donc tu peut éventuellement utiliser les commandes IE pour tester le lancement d'une page ou autre.
Si ça ne répond pas => application bloquée. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#4

Message par timmalos »

Puisque tu lance l'application, tu à son handle et donc tu peut éventuellement utiliser les commandes IE pour tester le lancement d'une page ou autre.
Si ça ne répond pas => application bloquée. ;)
L'action qui suit Iecreate("about:") est IeNavigate, ce qui suit ce que tu viens de dire, mais comment savoir quand c'est bloqué? Des fois mon site est long a chargé, et j'ai mis le timeout à 30sec, mais j'ai remarqué que ca ne faisait rien à part ecrire un message dans la console.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#5

Message par ani »

Hello,
je dispose encore de IE6, Stable ou non évite ce genre de réplique....
Divers facteurs peuvent être à l'origine, il est donc difficil de répondre avant d'avoir examiné le probléme, tout dépendra des fonctions que tu aura utilisées, de la mémoire restante et des visites sur le sites (le serveur peut charger pas mal de chose) (on peut obtenir une sorte de freeze).

Si çà persiste, recherche le fichier IE.inf fait un clique droit > installe, çà remettra à jour le régédit.

La question dû comment savoir si une fenêtre ne répond plus (ayant un syst§me fr), l'utilisateur verra dans la barre ces mots '...ne répond plus' (not responding) et niveau processus comme la signalé tlem "process idle (processus en attente)" ou encore dans l'etat de l'application "pas de réponse", le freeze ne dur jamais éternellement sauf pour les utilisateurs dit stressé au clique fous ect...

Exemple moi quand je me connecte sur le fofo anglais j'ai souvent les pages qui ... pas de réponse au niveau de l'état, faut juste attendre, çà vient juste du serveur et non de iE.

les solutions y en a.
mais je me suis jamais interéssé, je fait une relecture de l'aide 3.3.0.0 concernant le process et thread a la recherche du ?
Ma question = dans la barre (du titre) il est noté ne répond plus ou y a rien noté ?

merci et à tout de suite ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#6

Message par Tlem »

Difficile à dire sans code et sans tester, mais je dirais par exemple de faire une boucle de 60 secondes qui essaye de récupérer le résultat de l'affichage de la page.
Par la méthode IECreate ou apparentée.
Une autre solution serait de chercher un texte particulier dans la page. Genre le bas de page. ;)

Toutes les méthodes sont bonnes à prendre, il faut juste adapter à la situation.

Edit: ani m'a devancé. :lol:
Par contre je pense que Tim parle d'un problème d'affichage de page extrêmement long et non du freeze de IE à son lancement comme je le pensais.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#7

Message par timmalos »

Hop la, le gendarme arrive. Tout va bien pour le chargement de la page. Mon problème vient bien de IE. J'explique plus en detail: C'est un site https, mais le certificat n'est pas valide (enfin valide en externe mais pas en interne, ceux qui ont fait ca je leur dis : :evil: ) et bien sur je travaille en interne;
Ie a aperrement du mal, donc de temps en temps ca se passe tres bien, il m'affiche une page me demander de valider ou non pour continuer, puis après sur le site lui meme aucun problème. Quelques fois, il met 30 sec a chercher la page. Bon , ca passe encore je me demerde; mais quelques fois il freeze totalement, impossible de fermer le processus, impossible de fermer, impossible de cliquer, bref, voila pourquoi je parlais de "pas stable".

dans la barre (du titre) il est noté ne répond plus ou y a rien noté ?
Et bien il n'y a rien de noté, puis si on le cherche un peu et qu'on clique de partout, au bout d'une looonnnngggguuuee minute le ne répond plus apparait.

Pour l'instant , j'avais juste:

Code : Tout sélectionner

$oIE = _IECreate($site,0, 1, 1)
If ($oIE == 0) And (@error <> 0) Then
        $texte = "Erreur à l'ouverture d'Internet explorer"
        If $log Then
            FileWrite($file, $texte)
            FileWrite($file, @CRLF & @CRLF & @CRLF & _
                    "///////////////////////////////////////////////////////////////////////////" & _
                    @CRLF & @MDAY & @MON & @YEAR & "  " & @HOUR & ':' & @MIN & ':' & @SEC & "-----Fin de la session " & _
                    @CRLF & "///////////////////////////////////////////////////////////////////////////")
            FileClose($file)
        EndIf
        $t = TimerInit()
        While ProcessExists("iexplore.exe") And TimerDiff($t) <= 15000
            ProcessClose("iexplore.exe")
        WEnd
        Exit
        ;Else
        ;   _MouseTrap(@DesktopWidth/2,@DesktopHeight/1.5,0,0)
        ;   BlockInput(1)
    EndIf
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#8

Message par Tlem »

Une autre idée, serait de surveiller le processus avec ProcessGetStats.
Si après le lancement de IE le processus (du moins ses consommations mémoire/thread... n'ont pas changés) alors le processus est bloqué.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#9

Message par timmalos »

Pas mal du tout ca. Je vais attendre que l'erreur se reproduire pour pouvoir tester ;)

Merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Savoir quand une fenêtre de répond plus

#10

Message par timmalos »

Réponse Recue par le forum Anglais:

http://www.autoitscript.com/forum/index ... ntry186784
Avatar du membre
Nayde
Niveau 1
Niveau 1
Messages : 1
Enregistré le : jeu. 06 mars 2014 04:41
Status : Hors ligne

Re: [R] Savoir quand une fenêtre de répond plus

#11

Message par Nayde »

Bonjour/Bonsoir,

Désolé de faire un Up de quasiment 5 ans, je sais que ce genre de pratique est très mal vu sur les forums mais je pense que si d'autres personnes ont besoin d'une solution à ce problème et tombent sur ce topic (comme moi aujourd'hui), ma réponse peut leur être utile.

Du coup je me lance : j'ai trouvé une solution alternative afin de savoir si la fenêtre répond ou non.
Tout simplement : je teste si le curseur de la souris est en mode "Attente", le fameux rond qui tourne (Sur W7).

Code : Tout sélectionner

If (MouseGetCursor() = 15) Then
...
Le "15" correspond à l'état "WAIT" du curseur.

Bonne continuation.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2127
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Savoir quand une fenêtre de répond plus

#12

Message par TommyDDR »

Et si le curseur est mis volontairement sur Wait ? :roll:

Sinon, avec la derniere mise à jour autoit :

Code : Tout sélectionner

_WinAPI_IsHungAppWindow($hWnd)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre