FindWindow et ShowWindow [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
11 octobre 2007
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
bonjour

j'ai un petit soucis sur l'utilisation des functions "FindWindow" "ShowWindow"

pour le FindWindow, j 'ai mit

Dim hdle,
hdle = FindWindow(vbNullString, "~")
~ est le nom de mon application ouverte que je vois dans ma barre des taches (lorsque je lance Cygwin)

pour le ShowWindow, j'ai mit

ShowWindow(hdle, 5)
a
savoir que le SW_SHOW ne peut pas fonctionner du fait qu'on attend un
long (j'ai jamais comprit pourquoi je vois souvent SW_SHOW , SW_HIDE,
SW_ .......alors que c'est un variable non déclaré)

en débuggage, j'ai ce message sur la ligne ShowWindow(hdle, 5)

"A
call to PInvoke function 'Conductor!Conductor.Conductor::ShowWindow'
has unbalanced the stack. This is likely because the managed PInvoke
signature does not match the unmanaged target signature. Check that the
calling convention and parameters of the PInvoke signature match the
target unmanaged signature."

1) que signifie ce message?
2)
comment vérifier qu'on a le bon handle de l'application désirée? (je
récupère un handle mais même en mettant une application inexistance du
genre hdle = FindWindow(vbNullString, "BACHIBOUZOUK"), je récupere
aussi un handle)
3) mon objectif est de passer d"une application a
un autre afin d'utiliser le clavier pour entrer des commandes sous
Cygwin, .... donc je voudrais un peu plus de détaille sur ces 2
fonctions

merci

ps : je suis sous VB Express Edition 2005, Win XP

4 réponses

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Salut où sont les types des variables, VB.Net les long à remplacer par des integer et voilà.

hdle = Int(FindWindow(vbNullString, "~"))

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)

Si la réponse vous convient: Réponse acceptée < body>
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
Dim hdle As ??????

(Integer)



Pour la énième fois, les déclarations d'APIs sont à adapter pour B2005...
Long => Integer
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
>a savoir que le SW_SHOW ne peut pas fonctionner du fait qu'on attend un
long (j'ai jamais comprit pourquoi je vois
> souvent SW_SHOW , SW_HIDE,
SW_ .......alors que c'est un variable non déclaré)

Il suffit de déclarer la constante avant de pouvoir l'utiliser.    Au final, cela revient au même sauf que c'est bien plus facile à lire.

Const SW_SHOW = 5

Christophe
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
il s'agit surtout de bien faire la déclaration de l'API, si on y laisse Long, tu peux avoir déclaré toutes les constantes que tu veux, le cast se ferait...

et crack !