Option Explicit Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Sub Form_Load() Dim StrClassName As String Dim strWindowName As String Dim lngIdWindow As Long Dim lngProcessId As Long Dim lngProcessHandle As Long Dim LngBoucle As Long Dim lngMaxMemoire As Long Dim lngAdresseMemoire As Long Dim LngBuffeur As Long Dim strBuffeur As String 'je ne m'interresse pas à la class mais au nom de la fenètre StrClassName = vbNullString 'récupération du nom de la fenètre voulu 'moyen rapide pour le dev: strWindowName = "WinZip (Evaluation version)" 'moyen avec action de l'utilisateur ' strWindowName = InputBox("Titre") 'récupération de l'id de la fenètre (souvent appelé hwind) lngIdWindow = FindWindow(StrClassName, strWindowName) 'récupération du "process Id" de la fenètre GetWindowThreadProcessId lngIdWindow, lngProcessId 'récupératon du handle du process lngProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, lngProcessId) 'récupération de la taille de la mémoire utilisé pour cette tache lngMaxMemoire = 10000 'la je ne sais pas comment optenire cette valeur 'la valeur que je met est totalement fausse et competement subjective 'récupération de l'adresse de démarrage de la mémoire (souvent codé en exadecimal) lngAdresseMemoire = 0 'la je ne sais pas comment optenire cette valeur 'la valeur que je met est totalement fausse et competement subjective 'lecture de la mémoire concernant ce process For LngBoucle = 1 To lngMaxMemoire Step 2 'lecture Byte à Byte de la mémoire que l'on stock dans LngBuffeur ReadProcessMemory lngProcessHandle, lngAdresseMemoire + LngBoucle - 1, LngBuffeur, 1, 0& 'convertion du buffeur en chaine de caractère strBuffeur = strBuffeur & Chr(LngBuffeur) Next 'affichage du buffeur Debug.Print strBuffeur 'apres avoir ouvert le proccess je le ferme (ce n'est pas une fermeture de l'application) CloseHandle lngProcessHandle 'fermeture de la form Unload Me End Sub