Soyez le premier à donner votre avis sur cette source.
Vue 11 374 fois - Téléchargée 1 062 fois
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long Public Declare Function GetLastError Lib "kernel32" () As Long Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" ( _ ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Public Declare Function GetWindow Lib "user32" ( _ ByVal hwnd As Long, _ ByVal uCmd As Long) As Long Public Const WM_SETTEXT As Long = 12 Public Const BM_CLICK = &HF5 'Fonction réalisée par Cyberdevil - Copyright 2003 Xwave Network 'Elle ne peut en aucun cas être appropriée à un autre nom que celui d'Xwave Network 'http://www.xwaves.net - http://jetforce.xwaves.net '-------------------------------------------------- Public Function Loginner(ByVal login As String, ByVal password As String, Optional locked As Boolean = False) As Boolean Dim hWNDuser As Long, hWNDpass As Long, hWNDok As Long, hWNDgina As Long, ret As Long, ret2 As Long, ret3 As Long Dim hWNDlogon As Long, hWNDErreur As Long Dim error As Boolean hWNDgina = FindWindow("#32770", vbNullString) 'recherche du handle de la fenêtre de login If locked = False Then 'si pas vérouillé hWNDuser = GetDlgItem(ByVal hWNDgina, 1502) 'recherche du handle du textbox Login de la fenêtre de login hWNDpass = GetDlgItem(ByVal hWNDgina, 1503) 'idem que ci-dessus sauf qu'ici, c'est pour le password hWNDok = GetDlgItem(ByVal hWNDgina, 1) 'idem que ci-dessus sauf qu'ici, c'est pour le bouton OK Else 'si vérouillé hWNDuser = GetDlgItem(ByVal hWNDgina, 1953) 'recherche du handle du textbox Login de la fenêtre de login hWNDpass = GetDlgItem(ByVal hWNDgina, 1954) 'idem que ci-dessus sauf qu'ici, c'est pour le password hWNDok = GetDlgItem(ByVal hWNDgina, 1) 'idem que ci-dessus sauf qu'ici, c'est pour le bouton OK End If ret = SendMessage(ByVal hWNDuser, WM_SETTEXT, 0, ByVal login) 'on envoie le login ret2 = SendMessage(ByVal hWNDpass, WM_SETTEXT, 0, ByVal password) 'on envoie le password ret3 = SendMessage(ByVal hWNDok, BM_CLICK, 0, 0) 'on valide le toute hWNDgina = FindWindow("#32770", vbNullString) 'recherche du handle de la fenêtre de login hWNDlogon = 0 If locked = False Then hWNDlogon = GetDlgItem(ByVal hWNDgina, 1502) Else hWNDlogon = GetDlgItem(ByVal hWNDgina, 1953) End If While hWNDlogon <> 0 If locked = False Then hWNDlogon = GetDlgItem(ByVal hWNDgina, 1502) Else hWNDlogon = GetDlgItem(ByVal hWNDgina, 1953) End If If isLoginError() = True Then error = True GoTo apr: End If xWait 100 DoEvents Wend apr: If error = False Then Loginner = True Else debutfaux: hWNDgina = FindWindow("#32770", vbNullString) hWNDok = GetDlgItem(ByVal hWNDgina, 2) ret3 = SendMessage(ByVal hWNDok, BM_CLICK, 0, 0) 'on valide le toute DoEvents If isLoginError = True Then GoTo debutfaux: Loginner = False End If End Function '******************************************************************************************** ' Name : xWait ' Purpose : Wait for the time requested without ' stopping the execution of other functionsfuck ' Syntax : xWait(MilsecToWait) ' Parameters : MilsecToWait : Time to wait in millisecond ' Return : / '******************************************************************************************** Public Sub xWait(ByVal MilsecToWait As Long) Dim lngEndingTime As Long lngEndingTime = GetTickCount() + (MilsecToWait) Do While GetTickCount() < lngEndingTime DoEvents Loop End Sub Private Function isLoginError() As Boolean Dim hWNDgina As Long Dim ret As String hWNDgina = FindWindow("#32770", vbNullString) 'recherche du handle de la fenêtre de login ret = GetDlgItem(hWNDgina, CLng("65535")) If ret <> "0" Then isLoginError = True Else isLoginError = False End If End Function
Philippe734 as tu trouvé des sources interessante sur ce que tu recherche a faire ? (car je recherche a faire la meme chose)
sinon Cyberdevil as tu fait d'autre exemple avec ce type de DLL (gina) ?
Cordialement,
www.troxsa.info
1) Quand j'essaie de compiler moi-même le la dll sous VC 6, la compilation se passe avec 3 warnings (je crois qu'il n'y en a qu'un ds le log de compilation que tu as mis ds le zip) et la dll ne marche pas.
2) Qu'est-ce qui se passe pour le prog au moment où l'utilisateur se connecte (il est fermé, ou qq chose comme ça ?)
Je suis sous Win 2000 et impossible de capter le HANDLE de la fenêtre
à partir de la fonction FindWindow, est ce une protection de Windows?
Ca marchait bien sous Win 95,98,... mais là mystère
Si quelqu un avait des infos sur cette authentification?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.