API et références VBisual Basic

Signaler
Messages postés
3
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
18 juillet 2008
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,

Je cherche à modifier un ancien programme en V.B 6, d'une personne que je ne peux plus contacter.
Je rencontre un problème lorsque je lance le programme, j'ai un message d'erreur "Erreur d'exécution 424 - Un objet est requis".
Après avoir essayé de comprendre un peu plus le problème, je vois que le programme exploite un API windows car il y a un appel à une fonction microsoft du type :
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Je ne connais rien au API ???
Je pense qu'il doit manquer une référence lié à ces objets mais alors laquelle ???
Si quelqu'un à des infos ou des solutions, je suis preneur.

Vivien

3 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

la declaration ne suffit pas, il nous faudrait la partie du code qui fait appel a cette fonction.

A+
Messages postés
3
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
18 juillet 2008

Public Sub ListeDesTaches()


ReDim TabTaches(0)


CurrWnd = GetWindow(Form1.hwnd, GW_HWNDFIRST)


    While CurrWnd <> 0
            'Parent = GetParent(CurrWnd)
            Length = GetWindowTextLength(CurrWnd)
            NomTache = Space$(Length + 1)
            Length = GetWindowText(CurrWnd, NomTache, Length + 1)
            NomTache = Left$(NomTache, Len(NomTache) - 1)
            If Length <> 0 Then
                    If NomTache <> "" Then
                            If IsWindowVisible(CurrWnd) Then
    '                                MsgBox NomTache
                                    If TabTaches(0) <> "" Then ReDim Preserve TabTaches(UBound(TabTaches) + 1)
                                    TabTaches(UBound(TabTaches)) = CurrWnd & "," & NomTache
                                    Form1.List1.AddItem CurrWnd & "," & NomTache
                            End If
                    End If
            End If
        CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
        DoEvents
    Wend
End Sub

Vivien
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
je trouve ce code très curieux, centré sur un Form1.hwnd
possible, surement d'énumérer les controles.