PInvokeStackImbalance sous vb 2005

Résolu
cs_xmustapha Messages postés 44 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 15 juillet 2011 - 14 avril 2007 à 14:27
cs_xmustapha Messages postés 44 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 15 juillet 2011 - 15 avril 2007 à 18:45
bonjour

j'ai 13 ans et j'ai tomber sur un code  :"Comment masquer la barre des tâches ?"
dans : http://faq.vb.free.fr/index.php?question=9
j'ai essayer ce code dans la VB 2005
mais j'ai une erreur MDA de "PInvokeStackImbalance"
venant de  Call SetWindowPos(TaskbarHandle(), 0, 0, 0, 0, 0,
TOGGLE_HIDEWINDOW)
merci pour tout les information
(j'ai windows vista)

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2007 à 14:48
Oui ce code est prevu à l'origine pour VB6. Pour l'utiliser avec VB2005 (.Net) il faut modifier les déclarations des fonction de l'api windows :

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

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx
As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2007 à 21:08
L'api Windows est l'ensemble des fonctions systèmes contenue dans diverses dll constituant le coeur de Windows. C'est ces fonctions là que tout programme Windows appelle directement ou, le plus souvent, indirectement, elles sont un passage obligatoire.

Tu trouveras de quoi travailler avec l'api de Windows sur divers sites. Un site, AllApi.net, a fait référence pendant de nombreuses années notamment avec son APIGuide. Même s'il est abandonné depuis longtemps ses infos sont encore valable pour les plateformes Win32 (XP par exemple avec VB6). Mais d'autres sites existe probablement plus à jour
AllAPI.net ---> [ http://allapi.mentalis.org/ http://allapi.mentalis.org/]
Un autre ---> http://www.answers.com/library/Win%20APIs-cid-512413357

Il faut savoir que généralement et sauf mention contraire, les infos données pour les api Windows concernent la plateforme Win32 et donc VB6 dans le cadre d'un développement en Visual Basic. Pour les utiliser en VB.Net, que ce soit VB2003 ou VB2005, il faut faire attention aux types des variables passées en parametres aux fonctions et corriger les déclarations en conséquence (ce que tu as été obligé de faire). En effet .Net se base sur un schéma Win64 et donc la taille des variables a changé par rapport à VB6 qui lui travaille avec un schéma Win32.

Win32, Win64, what'is? c'est tout simplement la taille de la variable de base en mémoire, la variable de base étant le type Long, un Long VB6 (et donc Windows) fera 32 bits, alors qu'un Long .Net (VB2005) fera 64 bits.
Idem pour l'integer, 16 bits pour VB6, 32 bits pour VB2005.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
3
cs_xmustapha Messages postés 44 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 15 juillet 2011 24
14 avril 2007 à 19:03
merci mais j'ai une autre question c'est tu peut m'expliquer l'API de windows sourtout les "Lib" et FindWindow et SetWindowPos et autre comment Connaître  

ses function

Si tu peut me donné des examples et merci
0
cs_xmustapha Messages postés 44 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 15 juillet 2011 24
15 avril 2007 à 18:45
merci pour votre réponse

mais on peu marcher ses API contre un ordinateur distans
ex : on peux on peu ouvrire un  Programme  qui s'affichera sur un ordinateur distans connectés un réseaux local
et merci
0
Rejoignez-nous