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
|