FindWindow et ShowWindow

Résolu
aluccard Messages postés 22 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 11 octobre 2007 - 30 mai 2007 à 11:04
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 30 mai 2007 à 13:22
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

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
30 mai 2007 à 11:10
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>
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 mai 2007 à 11:11
Dim hdle As ??????

(Integer)



Pour la énième fois, les déclarations d'APIs sont à adapter pour B2005...
Long => Integer
3
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
30 mai 2007 à 13:13
>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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 mai 2007 à 13:22
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 !
0
Rejoignez-nous