Out bmp

vincent2795 Messages postés 41 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 4 octobre 2012 - 6 juil. 2010 à 18:06
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 7 juil. 2010 à 21:13
Bonjour,
dans ma source, j' essaye de faire un screenshot, et de le nommer pas la date et l' heure ou il es pris.
mon problème: si le nom du fichier es choisi sa marche, mais si je fais une recherche de la date puis la met en paramètre cela ne fonctionne pas. je pense que cela a rapport a ASCII/ Unicode.
Besoin d' info ou d'aide.


.386
.MODEL FLAT,STDCALL
OPTION CASEMAP:NONE

INCLUDE windows.inc
INCLUDE kernel32.inc
INCLUDE user32.inc
INCLUDE gdi32.inc
INCLUDELIB kernel32.lib
INCLUDELIB user32.lib
INCLUDELIB gdi32.lib


GetLocalTime PROTO :DWORD
GetDateFormatA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
GetDateFormat equ GetDateFormatA
GetTimeFormatA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
GetTimeFormat equ GetTimeFormatA
GetStdHandle PROTO :DWORD
WriteFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
ExitProcess PROTO :DWORD
CapScreen proto :DWORD
; Prototypes for the included MASM32 library procedures

StdOut PROTO :DWORD
StrLen PROTO :DWORD

SYSTEMTIME STRUCT
  wYear             WORD      ?
  wMonth            WORD      ?
  wDayOfWeek        WORD      ?
  wDay              WORD      ?
  wHour             WORD      ?
  wMinute           WORD      ?
  wSecond           WORD      ?
  wMilliseconds     WORD      ?
SYSTEMTIME ENDS

; String lengths

MAX_DATE_LEN EQU 20
MAX_TIME_LEN EQU 15


.DATA? 

stCurTime SYSTEMTIME <>
szDate db MAX_DATE_LEN dup (?)
szTime db MAX_TIME_LEN dup (?)

.DATA
;	szmybmp db "jeud. 06 juillet.2010.bmp",NULL
szmybmp db ".bmp",NULL
szDFormat db "ddd dd MMM yyyy '", 0Dh, 0Ah, "'", 0
szTFormat db " hh'H'mm'min'ss''tt'", 0Dh, 0Ah, "'", 0
szDateTitle db "Date", 0
szTimeTitle db "Time", 0
szDisplay     db "DISPLAY",0
szNoDC        db "Couldn''t create device context.",0
szNoMemDC     db "Couldn''t create compatible device context.",0
szNoBMP       db "Couldn''t create compatible bitmap.",0
szNoObj       db "Couldn''t select bitmap.",0
szNoCopy      db "Couldn''t copy bitmap.",0
szNoFile      db "Couldn''t write file to disk.",0
szDone        db "Bitmap captured to disk file.",0

.CODE

WinEntry:
; Get time
invoke GetLocalTime, addr stCurTime
; Convert
invoke GetDateFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szDFormat, addr szDate, MAX_DATE_LEN
invoke GetTimeFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szTFormat, addr szTime, MAX_TIME_LEN

invoke lstrcat ,addr szDate  ,addr szmybmp
invoke CapScreen, addr szDate
;	invoke CapScreen, addr szmybmp
invoke MessageBox,NULL,offset szDate,offset szmybmp,MB_OK

INVOKE ExitProcess,EAX


CapScreen Proc lpFileName:DWORD
    LOCAL hdc:HDC
    LOCAL memdc:HDC
    LOCAL hFile:HANDLE
    LOCAL dwBytes:DWORD
    LOCAL bitmapfileheader:BITMAPFILEHEADER
    LOCAL bitmapinfoheader:BITMAPINFOHEADER
    LOCAL colors[256]:RGBQUAD
    LOCAL bmpinfo:BITMAPINFO
    LOCAL hBitmap:HBITMAP
    LOCAL pBits:DWORD
    LOCAL dwWidth:DWORD
    LOCAL dwHeight:DWORD
    LOCAL dwNumColors:DWORD
    LOCAL dwBPP:DWORD
    LOCAL ColorSize:DWORD
            invoke CreateDC, addr szDisplay, NULL, NULL, NULL
            mov hdc,eax
            .IF (eax==NULL)
;                invoke MessageBox, 0, addr szNoDC, NULL, 0
                jmp ExitFunc
            .ENDIF
            invoke GetDeviceCaps, hdc, HORZRES
            mov dwWidth,eax
            invoke GetDeviceCaps, hdc, VERTRES
            mov dwHeight,eax
            invoke GetDeviceCaps, hdc, BITSPIXEL
            mov dwBPP,eax
            .IF (eax<=8)
                invoke GetDeviceCaps, hdc, NUMCOLORS
                mov dwNumColors,eax
                mov dwNumColors,256	;this one looks bad
            .ELSE
                mov dwNumColors,0
            .ENDIF
            invoke CreateCompatibleDC, hdc
            mov memdc,eax
            .IF (eax==NULL)
                invoke DeleteDC, hdc
;                invoke MessageBox, 0, addr szNoMemDC, NULL, 0
                jmp ExitFunc
            .ENDIF
            mov bmpinfo.bmiHeader.biSize,sizeof BITMAPINFOHEADER
            mov eax,dwWidth
            mov bmpinfo.bmiHeader.biWidth,eax
            mov eax,dwHeight
            mov bmpinfo.bmiHeader.biHeight,eax
            mov bmpinfo.bmiHeader.biPlanes,1
            mov ax,word ptr [dwBPP]
            mov bmpinfo.bmiHeader.biBitCount,ax
            mov bmpinfo.bmiHeader.biCompression,BI_RGB
            mov bmpinfo.bmiHeader.biSizeImage,0
            mov bmpinfo.bmiHeader.biXPelsPerMeter,0
            mov bmpinfo.bmiHeader.biYPelsPerMeter,0
            mov eax,dwNumColors
            mov bmpinfo.bmiHeader.biClrUsed,eax
            mov bmpinfo.bmiHeader.biClrImportant,eax
            invoke CreateDIBSection,hdc,addr bmpinfo, DIB_PAL_COLORS,addr pBits, NULL, 0
            mov hBitmap,eax
            .IF (eax==NULL)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
;                invoke MessageBox, 0, addr szNoBMP, NULL, 0
                jmp ExitFunc
            .ENDIF
            invoke SelectObject, memdc, hBitmap
            .IF (eax==NULL) || (eax==GDI_ERROR)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
;                invoke MessageBox, 0, addr szNoObj, NULL, 0
                jmp ExitFunc
            .ENDIF
            invoke BitBlt, memdc, 0,0, dwWidth, dwHeight, hdc, 0,0, SRCCOPY
            .IF (!eax)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
;                invoke MessageBox, 0, addr szNoCopy, NULL, 0
                jmp ExitFunc
            .ENDIF
            mov eax,dwNumColors
            .IF (eax!=0)
                invoke GetDIBColorTable, memdc, 0, dwNumColors, addr colors
                mov dwNumColors,eax
            .ENDIF
            mov bitmapfileheader.bfType,4D42h
            mov eax,dwNumColors
            xor edx,edx
            mov ecx,sizeof RGBQUAD
            mul ecx
            mov ColorSize,eax
            mov eax,dwWidth
            xor edx,edx
            mov ecx,dwHeight
            mul ecx
            xor edx,edx
            mov ecx,dwBPP
            mul ecx
            shr eax,3
            add eax,ColorSize
            add eax,sizeof BITMAPFILEHEADER
            add eax,sizeof BITMAPINFOHEADER
            mov bitmapfileheader.bfSize,eax
            mov bitmapfileheader.bfReserved1,0
            mov bitmapfileheader.bfReserved2,0
            mov eax,ColorSize
            add eax,sizeof BITMAPFILEHEADER
            add eax,sizeof BITMAPINFOHEADER
            mov bitmapfileheader.bfOffBits,eax
            mov bitmapinfoheader.biSize,sizeof BITMAPINFOHEADER
            mov eax,dwWidth
            mov bitmapinfoheader.biWidth,eax
            mov eax,dwHeight
            mov bitmapinfoheader.biHeight,eax
            mov bitmapinfoheader.biPlanes,1
            mov ax,word ptr [dwBPP]
            mov bitmapinfoheader.biBitCount,ax
            mov bitmapinfoheader.biCompression,BI_RGB
            mov bitmapinfoheader.biSizeImage,0
            mov bitmapinfoheader.biXPelsPerMeter,0
            mov bitmapinfoheader.biYPelsPerMeter,0
            mov eax,dwNumColors
            mov bitmapinfoheader.biClrUsed,eax
            mov bitmapinfoheader.biClrImportant,0
            invoke CreateFile, lpFileName,GENERIC_WRITE,0,\
                    NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
            mov hFile,eax
            .IF (eax==INVALID_HANDLE_VALUE)
                invoke DeleteObject, hBitmap
                invoke DeleteDC, memdc
                invoke DeleteDC, hdc
;                invoke MessageBox, 0, addr szNoFile, NULL, 0
                jmp ExitFunc
            .ENDIF
            invoke WriteFile, hFile, addr bitmapfileheader, sizeof BITMAPFILEHEADER,\
                        addr dwBytes, NULL
            invoke WriteFile, hFile, addr bitmapinfoheader, sizeof BITMAPINFOHEADER,\
                         addr dwBytes, NULL
            mov eax,dwNumColors
            .IF (eax!=0)
                invoke WriteFile, hFile, addr colors, ColorSize, addr dwBytes,NULL
            .ENDIF
            mov eax,dwWidth
            xor edx,edx
            mov ecx,dwHeight
            mul ecx
            xor edx,edx
            mov ecx,dwBPP
            mul ecx
            shr eax,3
            mov ColorSize,eax
            invoke WriteFile, hFile, pBits, ColorSize, addr dwBytes,NULL
            invoke CloseHandle, hFile
;            invoke MessageBox, 0, addr szDone, NULL, 0
            invoke DeleteObject ,hBitmap
            invoke DeleteDC, memdc
            invoke DeleteDC, hdc
ExitFunc:
            ret
CapScreen endp


; ---------------------------------------------------
; These are copies of the MASM32 library procedures.
; ---------------------------------------------------

StdOut proc lpszText:DWORD

    LOCAL hOutPut  :DWORD
    LOCAL bWritten :DWORD
    LOCAL sl       :DWORD

    invoke GetStdHandle,STD_OUTPUT_HANDLE
    mov hOutPut, eax

    invoke StrLen,lpszText
    mov sl, eax

    invoke WriteFile,hOutPut,lpszText,sl,ADDR bWritten,NULL

    mov eax, bWritten
    ret

StdOut endp

OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE

align 4

StrLen proc item:DWORD

  ; -------------------------------------------------------------
  ; This procedure has been adapted from an algorithm written by
  ; Agner Fog. It has the unusual characteristic of reading up to
  ; three bytes past the end of the buffer as it uses DWORD size
  ; reads. It is measurably faster than a classic byte scanner on
  ; large linear reads and has its place where linear read speeds
  ; are important.
  ; -------------------------------------------------------------

    mov     eax,[esp+4]             ; get pointer to string
    push    ebx
    lea     edx,[eax+3]             ; pointer+3 used in the end
  @@:     
    mov     ebx,[eax]               ; read first 4 bytes
    add     eax, 4                  ; increment pointer
    lea     ecx,[ebx-01010101h]     ; subtract 1 from each byte
    not     ebx                     ; invert all bytes
    and     ecx,ebx                 ; and these two
    and     ecx, 80808080h
    jz      @B                      ; no zero bytes, continue loop

    test    ecx,00008080h           ; test first two bytes
    jnz     @F
    shr     ecx,16                  ; not in the first 2 bytes
    add     eax,2
  @@:
    shl     cl,1                    ; use carry flag to avoid branch
    sbb     eax,edx                 ; compute length
    pop     ebx

    ret     4

StrLen endp

OPTION PROLOGUE:PrologueDef
OPTION EPILOGUE:EpilogueDef


END WinEntry

8 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 06:19
salut,

tu devrais peut-être vérifier que les fonctions utilisées pour retourner date et time fonctionnent correctement. Teste leur valeur de retour.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 06:20
tu peux aussi coller un petit messagebox derrière afin de voir le texte que cela donne.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 06:32
pourquoi tu met un linefeed et carriage return dedans si cela doit faire un nom de fichier ?
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 07:07
MAX_DATE_LEN est trop petit pour supporter le lstrcat.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 07:10
MAX_DATE_LEN est trop petit et écrase szTime, n'oublie pas le zero de terminaison.
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 07:36
MAX_FILENAME_LEN EQU 64

.DATA?
stCurTime SYSTEMTIME <>
szFineName db MAX_FILENAME_LEN dup (?)

.DATA
szmybmp db ".bmp",NULL
szDFormat db "ddd dd MMM yyyy",0
szTFormat db "hh'H'mm'min'ss''tt",0

.CODE

WinEntry:

invoke GetLocalTime, addr stCurTime

invoke GetDateFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szDFormat, addr szFileName, MAX_FILENAME_LEN

sub esp,256
mov eax,esp

invoke GetTimeFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szTFormat, eax, 256

invoke lstrcat ,addr szFileName ,esp
invoke lstrcat ,addr szFileName ,addr szmybmp

add esp,256

invoke CapScreen, addr szFileName

invoke ExitProcess, eax

...
0
vincent2795 Messages postés 41 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 4 octobre 2012
7 juil. 2010 à 16:33
MERCI! patatalo.
votre reponse marche tres bien. Voici la source :

.386
.MODEL FLAT,STDCALL
OPTION CASEMAP:NONE

INCLUDE windows.inc
INCLUDE kernel32.inc
INCLUDE user32.inc
INCLUDE gdi32.inc
INCLUDELIB kernel32.lib
INCLUDELIB user32.lib
INCLUDELIB gdi32.lib


GetLocalTime PROTO :DWORD
GetDateFormatA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
GetDateFormat equ GetDateFormatA
GetTimeFormatA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
GetTimeFormat equ GetTimeFormatA
GetStdHandle PROTO :DWORD
WriteFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
ExitProcess PROTO :DWORD
CapScreen proto :DWORD


SYSTEMTIME STRUCT
  wYear             WORD      ?
  wMonth            WORD      ?
  wDayOfWeek        WORD      ?
  wDay              WORD      ?
  wHour             WORD      ?
  wMinute           WORD      ?
  wSecond           WORD      ?
  wMilliseconds     WORD      ?
SYSTEMTIME ENDS

MAX_FILENAME_LEN EQU 64



.DATA? 

stCurTime SYSTEMTIME <>
szFileName db MAX_FILENAME_LEN dup (?) 
.DATA
szmybmp db ".bmp",NULL
szDFormat db "ddd dd MMM yyyy",0
szTFormat db "hh'H'mm'min'ss''tt",0
szDateTitle db "Date", 0
szTimeTitle db "Time", 0
szDisplay     db "DISPLAY",0

.CODE

WinEntry:
invoke GetLocalTime, addr stCurTime

invoke GetDateFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szDFormat, addr szFileName, MAX_FILENAME_LEN

sub esp,256
mov eax,esp

invoke GetTimeFormat, LOCALE_USER_DEFAULT, NULL, addr stCurTime, addr szTFormat, eax, 256

invoke lstrcat ,addr szFileName ,esp
invoke lstrcat ,addr szFileName ,addr szmybmp

add esp,256

invoke CapScreen, addr szFileName

invoke ExitProcess, eax 


CapScreen Proc lpFileName:DWORD
    LOCAL hdc:HDC
    LOCAL memdc:HDC
    LOCAL hFile:HANDLE
    LOCAL dwBytes:DWORD
    LOCAL bitmapfileheader:BITMAPFILEHEADER
    LOCAL bitmapinfoheader:BITMAPINFOHEADER
    LOCAL colors[256]:RGBQUAD
    LOCAL bmpinfo:BITMAPINFO
    LOCAL hBitmap:HBITMAP
    LOCAL pBits:DWORD
    LOCAL dwWidth:DWORD
    LOCAL dwHeight:DWORD
    LOCAL dwNumColors:DWORD
    LOCAL dwBPP:DWORD
    LOCAL ColorSize:DWORD
            invoke CreateDC, addr szDisplay, NULL, NULL, NULL
            mov hdc,eax
            .IF (eax==NULL)
                jmp ExitFunc
            .ENDIF
            invoke GetDeviceCaps, hdc, HORZRES
            mov dwWidth,eax
            invoke GetDeviceCaps, hdc, VERTRES
            mov dwHeight,eax
            invoke GetDeviceCaps, hdc, BITSPIXEL
            mov dwBPP,eax
            .IF (eax<=8)
                invoke GetDeviceCaps, hdc, NUMCOLORS
                mov dwNumColors,eax
                mov dwNumColors,256	;this one looks bad
            .ELSE
                mov dwNumColors,0
            .ENDIF
            invoke CreateCompatibleDC, hdc
            mov memdc,eax
            .IF (eax==NULL)
                invoke DeleteDC, hdc
                jmp ExitFunc
            .ENDIF
            mov bmpinfo.bmiHeader.biSize,sizeof BITMAPINFOHEADER
            mov eax,dwWidth
            mov bmpinfo.bmiHeader.biWidth,eax
            mov eax,dwHeight
            mov bmpinfo.bmiHeader.biHeight,eax
            mov bmpinfo.bmiHeader.biPlanes,1
            mov ax,word ptr [dwBPP]
            mov bmpinfo.bmiHeader.biBitCount,ax
            mov bmpinfo.bmiHeader.biCompression,BI_RGB
            mov bmpinfo.bmiHeader.biSizeImage,0
            mov bmpinfo.bmiHeader.biXPelsPerMeter,0
            mov bmpinfo.bmiHeader.biYPelsPerMeter,0
            mov eax,dwNumColors
            mov bmpinfo.bmiHeader.biClrUsed,eax
            mov bmpinfo.bmiHeader.biClrImportant,eax
            invoke CreateDIBSection,hdc,addr bmpinfo, DIB_PAL_COLORS,addr pBits, NULL, 0
            mov hBitmap,eax
            .IF (eax==NULL)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
                jmp ExitFunc
            .ENDIF
            invoke SelectObject, memdc, hBitmap
            .IF (eax==NULL) || (eax==GDI_ERROR)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
                jmp ExitFunc
            .ENDIF
            invoke BitBlt, memdc, 0,0, dwWidth, dwHeight, hdc, 0,0, SRCCOPY
            .IF (!eax)
                invoke DeleteDC, hdc
                invoke DeleteDC, memdc
                jmp ExitFunc
            .ENDIF
            mov eax,dwNumColors
            .IF (eax!=0)
                invoke GetDIBColorTable, memdc, 0, dwNumColors, addr colors
                mov dwNumColors,eax
            .ENDIF
            mov bitmapfileheader.bfType,4D42h
            mov eax,dwNumColors
            xor edx,edx
            mov ecx,sizeof RGBQUAD
            mul ecx
            mov ColorSize,eax
            mov eax,dwWidth
            xor edx,edx
            mov ecx,dwHeight
            mul ecx
            xor edx,edx
            mov ecx,dwBPP
            mul ecx
            shr eax,3
            add eax,ColorSize
            add eax,sizeof BITMAPFILEHEADER
            add eax,sizeof BITMAPINFOHEADER
            mov bitmapfileheader.bfSize,eax
            mov bitmapfileheader.bfReserved1,0
            mov bitmapfileheader.bfReserved2,0
            mov eax,ColorSize
            add eax,sizeof BITMAPFILEHEADER
            add eax,sizeof BITMAPINFOHEADER
            mov bitmapfileheader.bfOffBits,eax
            mov bitmapinfoheader.biSize,sizeof BITMAPINFOHEADER
            mov eax,dwWidth
            mov bitmapinfoheader.biWidth,eax
            mov eax,dwHeight
            mov bitmapinfoheader.biHeight,eax
            mov bitmapinfoheader.biPlanes,1
            mov ax,word ptr [dwBPP]
            mov bitmapinfoheader.biBitCount,ax
            mov bitmapinfoheader.biCompression,BI_RGB
            mov bitmapinfoheader.biSizeImage,0
            mov bitmapinfoheader.biXPelsPerMeter,0
            mov bitmapinfoheader.biYPelsPerMeter,0
            mov eax,dwNumColors
            mov bitmapinfoheader.biClrUsed,eax
            mov bitmapinfoheader.biClrImportant,0
            invoke CreateFile, lpFileName,GENERIC_WRITE,0,\
                    NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
            mov hFile,eax
            .IF (eax==INVALID_HANDLE_VALUE)
                invoke DeleteObject, hBitmap
                invoke DeleteDC, memdc
                invoke DeleteDC, hdc
                jmp ExitFunc
            .ENDIF
            invoke WriteFile, hFile, addr bitmapfileheader, sizeof BITMAPFILEHEADER,\
                        addr dwBytes, NULL
            invoke WriteFile, hFile, addr bitmapinfoheader, sizeof BITMAPINFOHEADER,\
                         addr dwBytes, NULL
            mov eax,dwNumColors
            .IF (eax!=0)
                invoke WriteFile, hFile, addr colors, ColorSize, addr dwBytes,NULL
            .ENDIF
            mov eax,dwWidth
            xor edx,edx
            mov ecx,dwHeight
            mul ecx
            xor edx,edx
            mov ecx,dwBPP
            mul ecx
            shr eax,3
            mov ColorSize,eax
            invoke WriteFile, hFile, pBits, ColorSize, addr dwBytes,NULL
            invoke CloseHandle, hFile
            invoke DeleteObject ,hBitmap
            invoke DeleteDC, memdc
            invoke DeleteDC, hdc
ExitFunc:
            ret
CapScreen endp
END WinEntry

0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 juil. 2010 à 21:13
re,

Sais tu que la fonction GetDateFormat() retourne le nombre de caractères inscrit dans le buffer ?

tu aurais donc pu éviter le premier lstrcat(), et invoquer le deuxième en fin de buffer, ce qui lui aurait fait gagner du temps car pas besoin de chercher la fin de la chaîne de reception.

Si tu veux qu'on voit ça, essaye et si tu as un problème, je t'aiderais.

@++
0
Rejoignez-nous