Savoir si une fenetre externe est ouverte [Résolu]

Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Dernière intervention
7 décembre 2009
- - Dernière réponse : drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
- 20 déc. 2006 à 11:06
Bonjour,

J'ai une application qui telecharge un fichier généré sur un lien web.
Je voudrais mettre un sleep sur l'appli tant que la fenetre "Téléchargement de fichier" n'est pas ouverte.

Le probleme est que je n'qrrive pas à détecter si la fenetre "Téléchargement de fichier" est ouverte ou pas ?

Si quelqu'un avait une idée ...

Merci d'avance
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
3
Merci
Chez moi ceci fonctionne très bien:



Public
 Class Form1
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim hwnd As Integer

        hwnd = Int(FindWindow(vbNullString, "Téléchargement de fichier"))

        If hwnd > 0 Then MsgBox("Fenêtre trouvé")

    End Sub
End Class





 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 118 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Salut l'api FindWindow!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
J'ai pas testé mais si mes souvenir son bon:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer

Dim hwnd as integer

hwnd = int(FindWindow(VBNullString,"Téléchargement de fichier")

If hwnd > 0 then MsgBox "Fenêtre trouvé"

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Dernière intervention
7 décembre 2009
0
Merci
Merci Drikce06 mais même si la fenetre n'est pas ouverte int(FindWindow(VBNullString,"Téléchargement de fichier") me renvoi toujours un chiffre > 0

HELP PLEASE !!
Commenter la réponse de cs_aloisio11
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Mets hwnd = 0 avant, mais si il ne trouve pas la fenêtre hwnd = 0 normalement! Tu es bien en .Net?
hwnd = int(FindWindow(VBNullString,"Téléchargement de fichier")

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Dernière intervention
7 décembre 2009
0
Merci
Oui je suis .Net.

Cela ne marche pas élas ...

Aurait tu une autre solution ... ou quelqu'un d'autre ?

Je suis planté là, je vois vraiment pas comment faire
Commenter la réponse de cs_aloisio11
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Dernière intervention
7 décembre 2009
0
Merci
T'es sur que tout hwnd est en Integer car si je test comme ça ca me fait un dépassement de capacité
Commenter la réponse de cs_aloisio11
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Désolé mais j'ai pas d'autre solution! C'est la seule que je connaisse et elle fonctionne, du moins chez moi en tout cas!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
pour tester fais un nouveau projet avec une form et un bouton et copie mon code!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Dernière intervention
7 décembre 2009
0
Merci
C'est bon ça marche, en fait j'avais mis :
Declare

Function FindWindow
Lib "user32"
Alias "FindWindowA" (
ByVal lpClassName
As
String,
ByVal lpWindowName
As
String)
As
LONG

Je suis trop bête ...

Mille merci Drikce06

Bon dev
Commenter la réponse de cs_aloisio11
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
oui j'en suis sur, normalement les api ont de types long mais pour qu'elles fonctionnent en .Net, il faut passer tout les long en integer!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Dernière intervention
29 mai 2008
6
0
Merci
Ok de rien, n'oublie pas réponse accéptée sur le post où il y a le code pour permettre aux autres membres de voir que ton problème a été résolu!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.