Salut ! [non, je plaisante] Difficulté avec API FindWindow

Résolu
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 21 juin 2007 à 03:00
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 21 juin 2007 à 04:12
Salut à tous,

bon je galère avec l'API citée ^^
J'essaie de faire un complément VB (add-in) mais je n'arrive pas à retrouver un handle.

Pour simplifier mon problème, voici un bout de code :

Option Explicit

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As
Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Form_Load()
    Dim aAs Long, RetVal As Long, lpClassName As
String
    
    lpClassName =  Space(256)
    
    RetVal = GetClassName(132014, lpClassName, 256)
    
    MsgBox "ClassName: " + Left$(lpClassName, RetVal)
    
    a = FindWindow(lpClassName, vbNullString)
    MsgBox a
    
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

Avec une fenêtre espion (Win ID) j'ai pu retrouver le Handle de la ToolsPalette (la barre d'outils qui contient les contrôles VB)
Donc j'ai triché, la valeur 132014 c'est le hWnd de la Tools, lpClassName me trouve bien " ToolsPalette " (le premier MsgBox)

A l'inverse, quand je fais MsgBox a, j'obtient 0 !

Quelqu'un a-t-il une idée ?
merci

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
A voir également:

2 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 juin 2007 à 03:54
Salut (non je plaisante)
pas classique comme méthode ?
on cherche d'abord le handle puis ensuite la classe
FindWindows ne donne que les fenêtres parents, ensuite faut chercher les enfants

    h1 = FindWindow("wndclass_desked_gsk", vbNullString)
   
    If h1 <> 0 Then
       h2 = FindWindowEx(h1, 0&, "ToolsPalette", vbNullString)
       MsgBox h2
       End If

Daniel
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 04:12
Salut Daniel,

royal, merci beaucoup, c'est exactement ça 

Ps : pour le 
Salut (non je plaisante)  , en fait c'est suite à une dicution récente, on disait que ces titres étaient à proscrire. Donc ça me faisait sourire

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
Rejoignez-nous