Page 1 sur 1

[..] Verification Process

Posté : ven. 15 oct. 2010 15:33
par aikiox
Bonjour,

J'essaye de faire un script qui verifie si un navigateur est en éxécution. Nous utilisons trois navigateur : IE, Chrome et Firefox

Donc en fonction des navigateurs ouvert, mettre un message d'erreur. Jusque la pas de probleme, mais quand je ferme l'application il me dit qu'il est toujours ouvert alors que non.

Voici mon code :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>


$ie = ProcessExists("iexplore.exe")
$chrome = ProcessExists("chrome.exe")
$firefox = ProcessExists("firefox.exe")

msgbox(0,"ok",$test)
GUICreate("GUI", 519, 672, 192, 124)
$Generate = GUICtrlCreateButton("Generate", 106, 584, 75, 25, 0)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit

        Case $nmsg =  $Generate
            if ($ie > 0) Then
                msgbox(0,"Internet Explorer","Merci de fermer Internet Explorer")

            ElseIf ($chrome > 0) Then
                msgbox(0,"Google Chrome","Merci de fermer Google Chrome")

            ElseIf ($firefox > 0) Then
                msgbox(0,"Firefox","Merci de fermer Mozilla Firefox")

            elseif ($ie > 0) and ($chrome > 0) Then
                msgbox(0,"Internet Explorer et Chrome","Merci de fermer Internet Explorer et Chrome")

            elseif ($ie > 0) and ($firefox > 0) Then
                msgbox(0,"Internet Explorer et Mozilla Firefox","Merci de fermer Internet Explorer et Firefox")

            elseif ($chrome > 0) and ($firefox > 0) Then
                msgbox(0,"Google Chrome et Mozilla Firefox","Merci de fermer Google Chrome et Firefox")

            elseif ($chrome > 0) and ($firefox > 0) and ($ie > 0) Then
                msgbox(0,"Google Chrome et Mozilla Firefox","Merci de fermer Google Chrome, Internet Explorer et Firefox")

            Else
            MsgBox(0,"rien","rien")
            EndIf


    EndSelect
WEnd

Il n'est pas dutout optimisé...

Cordialement
Romain

Re: [..] Verification Process

Posté : ven. 15 oct. 2010 15:46
par TommyDDR
C'est parce que tu initialise tes variables $ie, $chrome et $firefox au début et tu n'y touche plus apres.

Il faut les modifier à chaque appui sur "Generate".

Fait plutot comme ca (Je n'ai pas améliorer ton code, juste décalé 3 lignes)
► Afficher le textecode

Re: [..] Verification Process

Posté : ven. 15 oct. 2010 15:50
par Jerome
Coucou,


Pourquoi ne pas mettre un timer qui dit "votre fenetre va se fermer automatiquement d'ici x seconde " puis mettre un process kill ?

Je sait que parfois pour chrome, meme apres fermeture du navigateur, un process chrome.exe continu de tourner.


Jérôme

Re: [..] Verification Process

Posté : ven. 15 oct. 2010 15:58
par TommyDDR
Ce n'est pas une question de process dans ce cas, c'est une question de réactualisation de variables.

Re: [..] Verification Process

Posté : ven. 15 oct. 2010 16:04
par aikiox
Merci je ne peux essayer mais la solution me semble bonne.
ce bout de script m'evite de forcer la fermeture des navigateur utilisateur qui veulent installer le logiciel

Merci

Re: [..] Verification Process

Posté : sam. 16 oct. 2010 21:49
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.

Re: [R] Verification Process

Posté : sam. 23 oct. 2010 14:21
par aikiox
Merci

Re: [..] Verification Process

Posté : sam. 23 oct. 2010 14:29
par timmalos
Par contre il faudrait inverser, et mettre les conditions pour les 3 navigateurs AVANT celles pour 2 navigateurs et terminer par celles pour 1 navigateur, sinon si vous avez Firefox et IE de lancé, il ne vous avertira que pour le premier.

Re: [..] Verification Process

Posté : sam. 23 oct. 2010 14:48
par aikiox
Bonjour,

Je l'ai modifier
► Afficher le texte
Cordialement
Romain

Re: [..] Verification Process

Posté : dim. 24 oct. 2010 16:29
par sylvanie
Bonjour,
je viens de voir ce post, et me permet de suggérer une centralisation des browsers en un tableau à 2 dimensions : nom du navigateur; état

voici un exple reprenant l'idée de ce que vous voulez faire
► Afficher le texte
L'avantage ici est que si vous avez un 4eme brawser (ou plus) à intégrer, il suffit juste d'enrichir la première ligne de déclaration

Re: [..] Verification Process

Posté : lun. 25 oct. 2010 17:47
par sksbir
hop, je rajoute mon grain de sel :

ok pour le tableau à 2 dimensions, mais pourquoi utiliser stringsplit et tout ce code nécessaire pour passer de 1 à 2 dimensions, alors qu'il existe une fonction bien pratique dans autoit qui permet de déclarer directement un tableau à 2 dimensions avec des valeurs de départ dedans ?

dim tableau[x][y]=[ [valeur1,valeurA],[valeur2,valeurB]...etc...

Re: [..] Verification Process

Posté : lun. 25 oct. 2010 20:36
par sylvanie
Bonsoir,
c'est tout simplement pour faciliter l'ajout de plusieurs navigateurs dans le futur.
Avec cette méthode (certe plus chargée en code) on n'a qu'a ajouter le nom du browser dans la première ligne, sans se soucier de la dimension.
Ainsi on peut même faire cette déclaration dans un fichier texte afin de ne plus toucher au code du tout via un fileread.


Dans la méthode proposée, il faut à la fois modifier manuellement la dimension du tableau + l'ajout du nom.

La philosophie est que pour un script, moins il y a de modif à faire pour le faire évoluer, mieux c'est. Surtout quand on le reprends des mois plus tard ^^'

Re: [..] Verification Process

Posté : mer. 03 nov. 2010 08:15
par sksbir
Je comprends ton point de vue, car effectivement, même si remplacer N par N+1 dans la déclaration du tableau n'est pas sorcier, si on oublie la manip, ça passe à la compilation, mais pas à l'exécution...

En fait, idéalement, il faudrait pouvoir mettre -1 dans le dimensionnement d'un tableau de constante dont on initialise le contenu de façon à ne pas avoir à renseigner la dimension.

Mais ça demande une requête de modif pour autoit...

Re: [..] Verification Process

Posté : mer. 03 nov. 2010 08:46
par Tlem
Le mieux restera l'utilisation du StringSplit().

En ce qui concerne le code de Sylvanie, comme le tableau n'utilise que deux colonnes, personnellement au lieu d'utiliser un tableau 2D, j'aurais utilisé deux tableaux 1D. ;)

Code : Tout sélectionner

Global $liste_navigateur="iexplore.exe;chrome.exe;firefox.exe"
$liste_navigateur=StringSplit($liste_navigateur,";")
Global $etat_navigateur[UBound($liste_navigateur)]

Re: [..] Verification Process

Posté : mer. 03 nov. 2010 23:21
par alex1205
Salt Tlem.
Au lieu de faire :

Code : Tout sélectionner

[Global $liste_navigateur="iexplore.exe;chrome.exe;firefox.exe"
$liste_navigateur=StringSplit($liste_navigateur,";")
Global $etat_navigateur[UBound($liste_navigateur)
Fait ça

Code : Tout sélectionner

Global $liste_navigateur="iexplore.exe;chrome.exe;firefox.exe"
$liste_navigateur=StringSplit($liste_navigateur,";")
Global $etat_navigateur[[color=#FF0000]$liste_navigateur[0][/color]]
:

Re: [..] Verification Process

Posté : mer. 03 nov. 2010 23:27
par Tlem
Hé oui, mais non ... :lol:

Code : Tout sélectionner

Global $etat_navigateur[UBound($liste_navigateur)]
N'est pas équivalent à

Code : Tout sélectionner

Global $etat_navigateur[$liste_navigateur[0]]
Faites un essais. Affichez les deux et vous comprendrez mieux. :mrgreen: