salut,
bon, le principe c'est de récupérer le handle de ton objet textbox pour pouvoir lui envoyer un message lui indiquant de t 'envoyer le texte.
pour ca, tu dispose de quelques API :
FindWindow qui permet de recuperer le handle d'un objet en connaissant son nom ou sa classe.
FindWindowEx quit fait comme FindWindow mais on peu lui spécifier un objet parent et/ou un objet fils a partir duquel commener a chercher.
ces deux la vont servir a récuper le handle de ta fenetre (la calculatrice dans l'exemple) et de l'objet textbox ce cette fenetre.
ensuite, on va utiliser l'API SendMessage pour envoyer un message à l'objet textbox lui indiquant de nous retrouner la taille du texte qu'il contient et pour récuperer ce texte.
si ton appli a été fait avec les composant standard window, l'objet textbox se nome "Edit" mais ce nom peut changer.
Donc avant toute chose il faut te procurer un petit outils qui s'appele "izespy.exe". tu pourra le trouver en faisant une recherche à "izekial" dans la section "Visual Basic" du site www.planet-source-code.com. il te permet de récupere toutes les information de n'importe quel objet de ton environement windows grace a un petit pointeur. tu pour connaitre alors le nom et la classe des différent objets de ton appli.
voila l'exemple avec quelques commentaire.
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 hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
'// ces 2 fonctions permèttent de d'envoyer un message à un objet window
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lparam As Long) 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) As Long
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_GETTEXT = &HD
Sub Main()
Dim hForm As Long '// le handle de la fenetre dans laquelle on veut chercher le textbox.
Dim hEdit As Long '// le handle de l'objet textbox rechercher.
Dim txtBuffer As String '// le buffer pour récuperer le texte
Dim szText As Long '// et la taille du buffer
'// en premier en recherche le handle de la fenêtre "Calculatrice" par son nom
hForm = FindWindow(vbNullString, "Calculatrice")
If hForm > 0 Then '// si on le trouve, on continue, sinon, c'est que la calculatrice n'est pas en cours d'execution.
'// on récupère maintenant handle du 1ier objet "Edit" (notre textbox) de la fenêtre calculatrice.
hEdit = FindWindowEx(hForm, 0&, "Edit", vbNullString)
'// tout dabord, on recupère la taille du texte contenu dans l'objet "Edit" dans szTxt
szText = SendMessage(hEdit, WM_GETTEXTLENGTH, 0&, 0&)
'// ensuite on prépare le buffer qui va recupérer le texte
txtBuffer = String(szText, 0&)
'// et on récupère le texte ...
Call SendMessageByString(hEdit, WM_GETTEXT, szText + 1&, txtBuffer)
MsgBox txtBuffer
End If
End Sub