Savoir si une fenetre externe est ouverte

Résolu
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009 - 20 déc. 2006 à 10:37
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre 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

12 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 10:55
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:
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 10:39
Salut l'api FindWindow!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 10:42
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:
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
20 déc. 2006 à 10:48
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 !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 10:52
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:
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
20 déc. 2006 à 10:56
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
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
20 déc. 2006 à 11:00
T'es sur que tout hwnd est en Integer car si je test comme ça ca me fait un dépassement de capacité
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 11:01
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:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 11:02
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:
0
cs_aloisio11 Messages postés 126 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 7 décembre 2009
20 déc. 2006 à 11:03
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
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 11:04
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:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
20 déc. 2006 à 11:06
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:
0
Rejoignez-nous