Message de rapport:
 

API

Sujet: API
par sonia sur 26/8/2006 7:26:04

Bonjour,
Je suis nouvelle sur ce site qui semble bien complet.
Je debute aussi sur windev, étant plutot habituée a visual basic.
Je voulais essayer un truc peut etre un peu bete pour decouvrir : l'envoi de message sur un salon de discussion dans le logiciel AOL.

windev ne transcris pas vraiment le code vb et je me retrouve avec plein d'erreur.

en vb6 ca donnais:

Private Sub Command2_Click()
    miaou.SetText "" ' On vide la zone de saisie
    miaou.SetText txtSend.Text ' On met le texte
    miaou.ClickIconSend ' Click sur l'icone d'envoit
End Sub

Private Sub Form_Load()
    miaou.AOL_GetHandles ' Récupération des handles AOL
End Sub


et dans le module miaou:
' APIs
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)
' Constantes
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_KEYUP = &H101
Public Const VK_SPACE = &H20
Public Const WM_SETTEXT = &HC
' Variables globales
Public AOL_RoomChild As Long 'Handle de la child du salon
Public AOL_EditBox As Long 'Handle de la zone de texte
Public AOL_IconSend As Long 'Handle de l'icone pour send le texte en salon
' AOL_GetHandles : Récupère les handles AOL
' Retourne true si le salon a été trouvé sinon retourne false
Public Function AOL_GetHandles() As Boolean
'Déclare les variables
Dim AOL As Long, Mdi As Long, Child As Long, Rich As Long, AOLList As Long, AOLIcon As Long, AOLStatic As Long, RichLS As Long, Ico1 As Long, Ico2 As Long
'Récupère des handles principaux
AOL& = FindWindow("AOL FRAME25", vbNullString)
Mdi& = FindWindowEx(AOL&, 0&, "MDIClient", vbNullString)
'Boucle pour trouver le salon
Boucle:
    'Trouve la child
    Child& = FindWindowEx(Mdi&, Child&, "AOL Child", vbNullString)
    'Si n 'existe pas alors on est pas en salon
    If Child& = 0 Then
        'MsgBox "Aucune child trouvée..."
        Exit Function
    End If
    'Récupère les objets
    Rich& = FindWindowEx(Child&, 0&, "RICHCNTL", vbNullString)
    AOLList& = FindWindowEx(Child&, 0&, "_AOL_Listbox", vbNullString)
    AOLIcon& = FindWindowEx(Child&, 0&, "_AOL_Icon", vbNullString)
    AOLStatic& = FindWindowEx(Child&, 0&, "_AOL_Static", vbNullString)
    RichLS& = FindWindowEx(Child&, 0&, "richcntlreadonly", vbNullString)
    'Si on a tout trouvé, alors c'est le salon
    If Rich& <> 0& And AOLList& <> 0& And AOLIcon& <> 0& And AOLStatic& <> 0& Then
        'Stoque les handles dans la structure
        AOL_RoomChild = Child&
        AOL_EditBox = Rich&
        'Récupère l'icone envoyant le texte en salon
        AOLIcon = 0
        For a = 0 To 3
            AOLIcon = FindWindowEx(Child&, AOLIcon, "_aol_icon", vbNullString)
        Next a
        AOL_IconSend = AOLIcon
        'Tout s'est bien passé
        AOL_GetHandles = True
        Exit Function
    End If
GoTo Boucle

End Function
' ClickIcon : Click sur une icone AOL
Public Sub ClickIconSend() 'Click sur une icone AOL
    Call SendMessageLong(AOL_IconSend, WM_LBUTTONDOWN, 0&, 0&)
    Call SendMessageLong(AOL_IconSend, WM_KEYUP, VK_SPACE, 0&)
End Sub
' SetText : Ajoute du texte dans un editbox
Sub SetText(Txt As String) 'Envoyer du txt
    Call SendMessageByString(AOL_EditBox, WM_SETTEXT, Len(Txt), Txt)
End Sub


Merci pour vos eclaircissements
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2