CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 2008
-
16 sept. 2004 à 18:15
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 2019
-
17 sept. 2004 à 20:01
bonjour.
comment fait on pour recupere le handle des form des prog en cour et le handle des objet qu'elle contient (je precise que le prog en question n'est peut etre pas ecrit en vb)
merci
voila
VirusMan :-p
tu peux soit obtenir directement le handle de la fenetre en utilisant son nom ou sa classe soit en recuperant d'abord le ProcessId puis la liste des fenetres. Enfin les techniques sont nombreuse et offre des avantages et des inconvenients cela depend des besoins
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 16 sept. 2004 à 19:55
ça marche pareil.
Const WM_SETTEXT = &HC
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 16 sept. 2004 à 21:09
je mets l'exemple de allapi, mais faudra l'adapter
'in a form
Private Sub Form_Load()
Me.AutoRedraw = True
EnumChildWindows GetDesktopWindow , AddressOf EnumChildProc, ByVal 0&
End Sub
'in a module
Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim sSave As String
'Get the windowtext length
sSave = Space$(GetWindowTextLength(hwnd) + 1)
'get the window text
GetWindowText hwnd, sSave, Len(sSave)
'remove the last Chr$(0)
sSave = Left$(sSave, Len(sSave) - 1)
If sSave <> "" Then Form1.Print sSave
'continue enumeration
EnumChildProc = 1
End Function
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 16 sept. 2004 à 20:15
merci je demandé pas tan!
une derniere des derniere question:
comment recup le handle des textbox et composant d'une form (le code detaillé serrai le bienvenu)
si kelqu'un repond a ca je n'aurai plus de question
un grand merci
VirusMan :-p
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 17 sept. 2004 à 07:27
merci!
vraiment vous etes super les gars merci
vous aurez surement droit a ma source vers le semaine prochaine (c'est un cracker de cle cd)
merci beaucoup!
VirusMan :-p
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 17 sept. 2004 à 18:37
Je comprends pas trop la question
si tu as le texte tu peux trouver le handle, et avec le handle tu peux modifier le texte.
pour le nom, si ça peut t'aider tu peux aller la classe en fournissant le Handle. par exemple
un CommandButton --> ThunderCommandButton
un TextBox --> Thunder Textbox
un Label n'a pas de Handle
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Dim tText As String
Dim Length As Long
tText = Space$(255)
Length = GetClassName(tHandle, tText, 255)
tText = Left$(tText, Length)
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 17 sept. 2004 à 19:43
enfait tu voit le truc de gobillot et bien ca me list le nom des fentres ouvertes d'accord,mais comment faire pour recupere le handle qui va avec le nom?
VirusMan :-p