Page 1 sur 1

gestion du clavier

Publié : mar. 06/avr./2010 15:41
par dayvid
salut


je cherche un code pour prendre 100 % en charge le clavier "toutes les touches" en mode fenetré


par exemple je sais que avec la console ont peut prendre en charge toutes les touches
mais en mode fenêtré c'est autre chose, j'ai bien essayer des raccourcie clavier mais
il ne prennent pas toutes les touches du clavier en charge

comment puis-je dire a mon programme:
si une touche est appuyer
qu'il me renvoie le code de la touche

je pense que avec l'api de windows se serai possible non ? 8O :)

Re: gestion du clavier

Publié : lun. 26/avr./2010 19:03
par Backup
pour répondre a la question posé voici un debut de réponse :

Code : Tout sélectionner

Procedure.s KeyName(vk_code)
    Select vk_code
        Case  $01 : ret$ = "#VK_LBUTTON"   
        Case  $02 : ret$ = "#VK_RBUTTON"   
        Case  $03 : ret$ = "#VK_CANCEL"   
        Case  $04 : ret$ = "#VK_MBUTTON"   
        Case  $05 : ret$ = "#VK_XBUTTON1"   
        Case  $06 : ret$ = "#VK_XBUTTON2"   
        Case  $08 : ret$ = "#VK_BACK"   
        Case  $09 : ret$ = "#VK_TAB"     
        Case  $0C : ret$ = "#VK_CLEAR"   
        Case  $0D : ret$ = "#VK_RETURN"   
        Case  $10 : ret$ = "#VK_SHIFT"   
        Case  $11 : ret$ = "#VK_CONTROL"   
        Case  $12 : ret$ = "#VK_MENU"   
        Case  $13 : ret$ = "#VK_PAUSE"   
        Case  $14 : ret$ = "#VK_CAPITAL"   
        Case  $15 : ret$ = "#VK_KANA"   
        Case  $15 : ret$ = "#VK_HANGEUL"   
        Case  $15 : ret$ = "#VK_HANGUL"   
        Case  $17 : ret$ = "#VK_JUNJA"   
        Case  $18 : ret$ = "#VK_FINAL"   
        Case  $19 : ret$ = "#VK_HANJA"   
        Case  $19 : ret$ = "#VK_KANJI"   
        Case  $1B : ret$ = "#VK_ESCAPE"   
        Case  $1C : ret$ = "#VK_CONVERT"   
        Case  $1D : ret$ = "#VK_NONCONVERT" 
        Case  $1E : ret$ = "#VK_ACCEPT"   
        Case  $1F : ret$ = "#VK_MODECHANGE" 
        Case  $20 : ret$ = "#VK_SPACE"   
        Case  $21 : ret$ = "#VK_PRIOR"   
        Case  $22 : ret$ = "#VK_NEXT"   
        Case  $23 : ret$ = "#VK_END"     
        Case  $24 : ret$ = "#VK_HOME"   
        Case  $25 : ret$ = "#VK_LEFT"   
        Case  $26 : ret$ = "#VK_UP"   
        Case  $27 : ret$ = "#VK_RIGHT"   
        Case  $28 : ret$ = "#VK_DOWN"   
        Case  $29 : ret$ = "#VK_SELECT"   
        Case  $2A : ret$ = "#VK_PRINT"   
        Case  $2B : ret$ = "#VK_EXECUTE"   
        Case  $2C : ret$ = "#VK_SNAPSHOT" 
        Case  $2D : ret$ = "#VK_INSERT"   
        Case  $2E : ret$ = "#VK_DELETE"   
        Case  $2F : ret$ = "#VK_HELP"   
        Case  $30 : ret$ = "#VK_0"
        Case  $31 : ret$ = "#VK_1"
        Case  $32 : ret$ = "#VK_2"
        Case  $33 : ret$ = "#VK_3"
        Case  $34 : ret$ = "#VK_4"
        Case  $35 : ret$ = "#VK_5"
        Case  $36 : ret$ = "#VK_6"
        Case  $37 : ret$ = "#VK_7"
        Case  $38 : ret$ = "#VK_8"
        Case  $39 : ret$ = "#VK_9"
        Case  $41 : ret$ = "#VK_A"
        Case  $42 : ret$ = "#VK_B"
        Case  $43 : ret$ = "#VK_C"
        Case  $44 : ret$ = "#VK_D"
        Case  $45 : ret$ = "#VK_E"
        Case  $46 : ret$ = "#VK_F"
        Case  $47 : ret$ = "#VK_G"
        Case  $48 : ret$ = "#VK_H"
        Case  $49 : ret$ = "#VK_I"
        Case  $4A : ret$ = "#VK_J"
        Case  $4B : ret$ = "#VK_K"
        Case  $4C : ret$ = "#VK_L"
        Case  $4D : ret$ = "#VK_M"
        Case  $4E : ret$ = "#VK_N"
        Case  $4F : ret$ = "#VK_O"
        Case  $50 : ret$ = "#VK_P"
        Case  $51 : ret$ = "#VK_Q"
        Case  $52 : ret$ = "#VK_R"
        Case  $53 : ret$ = "#VK_S"
        Case  $54 : ret$ = "#VK_T"
        Case  $55 : ret$ = "#VK_U"
        Case  $56 : ret$ = "#VK_V"
        Case  $57 : ret$ = "#VK_W"
        Case  $58 : ret$ = "#VK_X"
        Case  $59 : ret$ = "#VK_Y"
        Case  $5A : ret$ = "#VK_Z"
        Case  $5B : ret$ = "#VK_LWIN"   
        Case  $5C : ret$ = "#VK_RWIN"   
        Case  $5D : ret$ = "#VK_APPS"   
        Case  $5F : ret$ = "#VK_SLEEP"   
        Case  $60 : ret$ = "#VK_NUMPAD0"   
        Case  $61 : ret$ = "#VK_NUMPAD1"   
        Case  $62 : ret$ = "#VK_NUMPAD2"   
        Case  $63 : ret$ = "#VK_NUMPAD3"   
        Case  $64 : ret$ = "#VK_NUMPAD4"   
        Case  $65 : ret$ = "#VK_NUMPAD5"   
        Case  $66 : ret$ = "#VK_NUMPAD6"   
        Case  $67 : ret$ = "#VK_NUMPAD7"   
        Case  $68 : ret$ = "#VK_NUMPAD8"   
        Case  $69 : ret$ = "#VK_NUMPAD9"   
        Case  $6A : ret$ = "#VK_MULTIPLY" 
        Case  $6B : ret$ = "#VK_ADD"     
        Case  $6C : ret$ = "#VK_SEPARATOR"   
        Case  $6D : ret$ = "#VK_SUBTRACT" 
        Case  $6E : ret$ = "#VK_DECIMAL"   
        Case  $6F : ret$ = "#VK_DIVIDE"   
        Case  $70 : ret$ = "#VK_F1"   
        Case  $71 : ret$ = "#VK_F2"   
        Case  $72 : ret$ = "#VK_F3"   
        Case  $73 : ret$ = "#VK_F4"   
        Case  $74 : ret$ = "#VK_F5"   
        Case  $75 : ret$ = "#VK_F6"   
        Case  $76 : ret$ = "#VK_F7"   
        Case  $77 : ret$ = "#VK_F8"   
        Case  $78 : ret$ = "#VK_F9"   
        Case  $79 : ret$ = "#VK_F10"     
        Case  $7A : ret$ = "#VK_F11"     
        Case  $7B : ret$ = "#VK_F12"     
        Case  $7C : ret$ = "#VK_F13"     
        Case  $7D : ret$ = "#VK_F14"     
        Case  $7E : ret$ = "#VK_F15"     
        Case  $7F : ret$ = "#VK_F16"     
        Case  $80 : ret$ = "#VK_F17"     
        Case  $81 : ret$ = "#VK_F18"     
        Case  $82 : ret$ = "#VK_F19"     
        Case  $83 : ret$ = "#VK_F20"     
        Case  $84 : ret$ = "#VK_F21"     
        Case  $85 : ret$ = "#VK_F22"     
        Case  $86 : ret$ = "#VK_F23"     
        Case  $87 : ret$ = "#VK_F24"     
        Case  $90 : ret$ = "#VK_NUMLOCK"
        Case  $91 : ret$ = "#VK_SCROLL"   
        Case  $A0 : ret$ = "#VK_LSHIFT"   
        Case  $A1 : ret$ = "#VK_RSHIFT"   
        Case  $A2 : ret$ = "#VK_LCONTROL" 
        Case  $A3 : ret$ = "#VK_RCONTROL" 
        Case  $A4 : ret$ = "#VK_LMENU"   
        Case  $A5 : ret$ = "#VK_RMENU"   
        Case  $A6 : ret$ = "#VK_BROWSER_BACK"   
        Case  $A7 : ret$ = "#VK_BROWSER_FORWARD" 
        Case  $A8 : ret$ = "#VK_BROWSER_REFRESH" 
        Case  $A9 : ret$ = "#VK_BROWSER_STOP"   
        Case  $AA : ret$ = "#VK_BROWSER_SEARCH"   
        Case  $AB : ret$ = "#VK_BROWSER_FAVORITES" 
        Case  $AC : ret$ = "#VK_BROWSER_HOME"   
        Case  $AD : ret$ = "#VK_VOLUME_MUTE"   
        Case  $AE : ret$ = "#VK_VOLUME_DOWN"   
        Case  $AF : ret$ = "#VK_VOLUME_UP"   
        Case  $B0 : ret$ = "#VK_MEDIA_NEXT_TRACK"
        Case  $B1 : ret$ = "#VK_MEDIA_PREV_TRACK"
        Case  $B2 : ret$ = "#VK_MEDIA_STOP"   
        Case  $B3 : ret$ = "#VK_MEDIA_PLAY_PAUSE"
        Case  $B4 : ret$ = "#VK_LAUNCH_MAIL"   
        Case  $B5 : ret$ = "#VK_LAUNCH_MEDIA_SELECT"
        Case  $B6 : ret$ = "#VK_LAUNCH_APP1"
        Case  $B7 : ret$ = "#VK_LAUNCH_APP2"
        Case  $BA : ret$ = "#VK_OEM_1"   
        Case  $BB : ret$ = "#VK_OEM_PLUS" 
        Case  $BC : ret$ = "#VK_OEM_COMMA"   
        Case  $BD : ret$ = "#VK_OEM_MINUS"   
        Case  $BE : ret$ = "#VK_OEM_PERIOD" 
        Case  $BF : ret$ = "#VK_OEM_2"   
        Case  $C0 : ret$ = "#VK_OEM_3"   
        Case  $DB : ret$ = "#VK_OEM_4"   
        Case  $DC : ret$ = "#VK_OEM_5"   
        Case  $DD : ret$ = "#VK_OEM_6"   
        Case  $DE : ret$ = "#VK_OEM_7"   
        Case  $DF : ret$ = "#VK_OEM_8"   
        Case  $E1 : ret$ = "#VK_OEM_AX"   
        Case  $E2 : ret$ = "#VK_OEM_102"   
        Case  $E3 : ret$ = "#VK_ICO_HELP" 
        Case  $E4 : ret$ = "#VK_ICO_00"   
        Case  $E5 : ret$ = "#VK_PROCESSKEY" 
        Case  $E6 : ret$ = "#VK_ICO_CLEAR"   
        Case  $E7 : ret$ = "#VK_PACKET"   
        Case  $E9 : ret$ = "#VK_OEM_RESET"   
        Case  $EA : ret$ = "#VK_OEM_JUMP" 
        Case  $EB : ret$ = "#VK_OEM_PA1"   
        Case  $EC : ret$ = "#VK_OEM_PA2"   
        Case  $ED : ret$ = "#VK_OEM_PA3"   
        Case  $EE : ret$ = "#VK_OEM_WSCTRL" 
        Case  $EF : ret$ = "#VK_OEM_CUSEL"   
        Case  $F0 : ret$ = "#VK_OEM_ATTN" 
        Case  $F1 : ret$ = "#VK_OEM_FINISH" 
        Case  $F2 : ret$ = "#VK_OEM_COPY" 
        Case  $F3 : ret$ = "#VK_OEM_AUTO" 
        Case  $F4 : ret$ = "#VK_OEM_ENLW" 
        Case  $F5 : ret$ = "#VK_OEM_BACKTAB"
        Case  $F6 : ret$ = "#VK_ATTN"   
        Case  $F7 : ret$ = "#VK_CRSEL"   
        Case  $F8 : ret$ = "#VK_EXSEL"   
        Case  $F9 : ret$ = "#VK_EREOF"   
        Case  $FA : ret$ = "#VK_PLAY"   
        Case  $FB : ret$ = "#VK_ZOOM"   
        Case  $FC : ret$ = "#VK_NONAME"   
        Case  $FD : ret$ = "#VK_PA1"     
        Case  $FE : ret$ = "#VK_OEM_CLEAR"   
        Default : ret$ = "UNKNOWN"
    EndSelect
    ProcedureReturn ret$
EndProcedure

Procedure KeyCode(vk_name$)
    If Left(vk_name$, 1) <> "#"
        vk_name$ = "#"+vk_name$
    EndIf
    Select UCase(vk_name$)
        Case "#VK_LBUTTON" : ret = $01
        Case "#VK_RBUTTON" : ret = $02
        Case "#VK_CANCEL" : ret = $03
        Case "#VK_MBUTTON" : ret = $04
        Case "#VK_XBUTTON1" : ret = $05
        Case "#VK_XBUTTON2" : ret = $06
        Case "#VK_BACK" : ret = $08
        Case "#VK_TAB" : ret = $09
        Case "#VK_CLEAR" : ret = $0C
        Case "#VK_RETURN" : ret = $0D
        Case "#VK_SHIFT" : ret = $10
        Case "#VK_CONTROL" : ret = $11
        Case "#VK_MENU" : ret = $12
        Case "#VK_PAUSE" : ret = $13
        Case "#VK_CAPITAL" : ret = $14
        Case "#VK_KANA" : ret = $15
        Case "#VK_HANGEUL" : ret = $15
        Case "#VK_HANGUL" : ret = $15
        Case "#VK_JUNJA" : ret = $17
        Case "#VK_FINAL" : ret = $18
        Case "#VK_HANJA" : ret = $19
        Case "#VK_KANJI" : ret = $19
        Case "#VK_ESCAPE" : ret = $1B
        Case "#VK_CONVERT" : ret = $1C
        Case "#VK_NONCONVERT" : ret = $1D
        Case "#VK_ACCEPT" : ret = $1E
        Case "#VK_MODECHANGE" : ret = $1F
        Case "#VK_SPACE" : ret = $20
        Case "#VK_PRIOR" : ret = $21
        Case "#VK_NEXT" : ret = $22
        Case "#VK_END" : ret = $23
        Case "#VK_HOME" : ret = $24
        Case "#VK_LEFT" : ret = $25
        Case "#VK_UP" : ret = $26
        Case "#VK_RIGHT" : ret = $27
        Case "#VK_DOWN" : ret = $28
        Case "#VK_SELECT" : ret = $29
        Case "#VK_PRINT" : ret = $2A
        Case "#VK_EXECUTE" : ret = $2B
        Case "#VK_SNAPSHOT" : ret = $2C
        Case "#VK_INSERT" : ret = $2D
        Case "#VK_DELETE" : ret = $2E
        Case "#VK_HELP" : ret = $2F
        Case "#VK_0" : ret = $30
        Case "#VK_1" : ret = $31
        Case "#VK_2" : ret = $32
        Case "#VK_3" : ret = $33
        Case "#VK_4" : ret = $34
        Case "#VK_5" : ret = $35
        Case "#VK_6" : ret = $36
        Case "#VK_7" : ret = $37
        Case "#VK_8" : ret = $38
        Case "#VK_9" : ret = $39
        Case "#VK_A" : ret = $41
        Case "#VK_B" : ret = $42
        Case "#VK_C" : ret = $43
        Case "#VK_D" : ret = $44
        Case "#VK_E" : ret = $45
        Case "#VK_F" : ret = $46
        Case "#VK_G" : ret = $47
        Case "#VK_H" : ret = $48
        Case "#VK_I" : ret = $49
        Case "#VK_J" : ret = $4A
        Case "#VK_K" : ret = $4B
        Case "#VK_L" : ret = $4C
        Case "#VK_M" : ret = $4D
        Case "#VK_N" : ret = $4E
        Case "#VK_O" : ret = $4F
        Case "#VK_P" : ret = $50
        Case "#VK_Q" : ret = $51
        Case "#VK_R" : ret = $52
        Case "#VK_S" : ret = $53
        Case "#VK_T" : ret = $54
        Case "#VK_U" : ret = $55
        Case "#VK_V" : ret = $56
        Case "#VK_W" : ret = $57
        Case "#VK_X" : ret = $58
        Case "#VK_Y" : ret = $59
        Case "#VK_Z" : ret = $5A
        Case "#VK_LWIN" : ret = $5B
        Case "#VK_RWIN" : ret = $5C
        Case "#VK_APPS" : ret = $5D
        Case "#VK_SLEEP" : ret = $5F
        Case "#VK_NUMPAD0" : ret = $60
        Case "#VK_NUMPAD1" : ret = $61
        Case "#VK_NUMPAD2" : ret = $62
        Case "#VK_NUMPAD3" : ret = $63
        Case "#VK_NUMPAD4" : ret = $64
        Case "#VK_NUMPAD5" : ret = $65
        Case "#VK_NUMPAD6" : ret = $66
        Case "#VK_NUMPAD7" : ret = $67
        Case "#VK_NUMPAD8" : ret = $68
        Case "#VK_NUMPAD9" : ret = $69
        Case "#VK_MULTIPLY" : ret = $6A
        Case "#VK_ADD" : ret = $6B
        Case "#VK_SEPARATOR" : ret = $6C
        Case "#VK_SUBTRACT" : ret = $6D
        Case "#VK_DECIMAL" : ret = $6E
        Case "#VK_DIVIDE" : ret = $6F
        Case "#VK_F1" : ret = $70
        Case "#VK_F2" : ret = $71
        Case "#VK_F3" : ret = $72
        Case "#VK_F4" : ret = $73
        Case "#VK_F5" : ret = $74
        Case "#VK_F6" : ret = $75
        Case "#VK_F7" : ret = $76
        Case "#VK_F8" : ret = $77
        Case "#VK_F9" : ret = $78
        Case "#VK_F10" : ret = $79
        Case "#VK_F11" : ret = $7A
        Case "#VK_F12" : ret = $7B
        Case "#VK_F13" : ret = $7C
        Case "#VK_F14" : ret = $7D
        Case "#VK_F15" : ret = $7E
        Case "#VK_F16" : ret = $7F
        Case "#VK_F17" : ret = $80
        Case "#VK_F18" : ret = $81
        Case "#VK_F19" : ret = $82
        Case "#VK_F20" : ret = $83
        Case "#VK_F21" : ret = $84
        Case "#VK_F22" : ret = $85
        Case "#VK_F23" : ret = $86
        Case "#VK_F24" : ret = $87
        Case "#VK_NUMLOCK" : ret = $90
        Case "#VK_SCROLL" : ret = $91
        Case "#VK_LSHIFT" : ret = $A0
        Case "#VK_RSHIFT" : ret = $A1
        Case "#VK_LCONTROL" : ret = $A2
        Case "#VK_RCONTROL" : ret = $A3
        Case "#VK_LMENU" : ret = $A4
        Case "#VK_RMENU" : ret = $A5
        Case "#VK_BROWSER_BACK" : ret = $A6
        Case "#VK_BROWSER_FORWARD" : ret = $A7
        Case "#VK_BROWSER_REFRESH" : ret = $A8
        Case "#VK_BROWSER_STOP" : ret = $A9
        Case "#VK_BROWSER_SEARCH" : ret = $AA
        Case "#VK_BROWSER_FAVORITES" : ret = $AB
        Case "#VK_BROWSER_HOME" : ret = $AC
        Case "#VK_VOLUME_MUTE" : ret = $AD
        Case "#VK_VOLUME_DOWN" : ret = $AE
        Case "#VK_VOLUME_UP" : ret = $AF
        Case "#VK_MEDIA_NEXT_TRACK" : ret = $B0
        Case "#VK_MEDIA_PREV_TRACK" : ret = $B1
        Case "#VK_MEDIA_STOP" : ret = $B2
        Case "#VK_MEDIA_PLAY_PAUSE" : ret = $B3
        Case "#VK_LAUNCH_MAIL" : ret = $B4
        Case "#VK_LAUNCH_MEDIA_SELECT" : ret = $B5
        Case "#VK_LAUNCH_APP1" : ret = $B6
        Case "#VK_LAUNCH_APP2" : ret = $B7
        Case "#VK_OEM_1" : ret = $BA
        Case "#VK_OEM_PLUS" : ret = $BB
        Case "#VK_OEM_COMMA" : ret = $BC
        Case "#VK_OEM_MINUS" : ret = $BD
        Case "#VK_OEM_PERIOD" : ret = $BE
        Case "#VK_OEM_2" : ret = $BF
        Case "#VK_OEM_3" : ret = $C0
        Case "#VK_OEM_4" : ret = $DB
        Case "#VK_OEM_5" : ret = $DC
        Case "#VK_OEM_6" : ret = $DD
        Case "#VK_OEM_7" : ret = $DE
        Case "#VK_OEM_8" : ret = $DF
        Case "#VK_OEM_AX" : ret = $E1
        Case "#VK_OEM_102" : ret = $E2
        Case "#VK_ICO_HELP" : ret = $E3
        Case "#VK_ICO_00" : ret = $E4
        Case "#VK_PROCESSKEY" : ret = $E5
        Case "#VK_ICO_CLEAR" : ret = $E6
        Case "#VK_PACKET" : ret = $E7
        Case "#VK_OEM_RESET" : ret = $E9
        Case "#VK_OEM_JUMP" : ret = $EA
        Case "#VK_OEM_PA1" : ret = $EB
        Case "#VK_OEM_PA2" : ret = $EC
        Case "#VK_OEM_PA3" : ret = $ED
        Case "#VK_OEM_WSCTRL" : ret = $EE
        Case "#VK_OEM_CUSEL" : ret = $EF
        Case "#VK_OEM_ATTN" : ret = $F0
        Case "#VK_OEM_FINISH" : ret = $F1
        Case "#VK_OEM_COPY" : ret = $F2
        Case "#VK_OEM_AUTO" : ret = $F3
        Case "#VK_OEM_ENLW" : ret = $F4
        Case "#VK_OEM_BACKTAB" : ret = $F5
        Case "#VK_ATTN" : ret = $F6
        Case "#VK_CRSEL" : ret = $F7
        Case "#VK_EXSEL" : ret = $F8
        Case "#VK_EREOF" : ret = $F9
        Case "#VK_PLAY" : ret = $FA
        Case "#VK_ZOOM" : ret = $FB
        Case "#VK_NONAME" : ret = $FC
        Case "#VK_PA1" : ret = $FD
        Case "#VK_OEM_CLEAR" : ret = $FE
        Default : ret = 0
    EndSelect
    ProcedureReturn ret
EndProcedure


;---------------------------------------------------
;      Test Program, key in some codes or names
;---------------------------------------------------

ProcedureDLL.l IsSimpleNumber(String$)
    If String$
        *p.character = @String$
        Repeat
            Char = *p\c
            If (Char >= '0' And Char <= '9') Or Char=0
                *p+1
            Else
                ProcedureReturn 0
            EndIf
        Until Char = 0
        ProcedureReturn 1
    EndIf
EndProcedure

OpenWindow(0,0,0,320,120,"KeyName/Code ID",$CF0001)
CreateGadgetList(WindowID(0))
TextGadget(0,100,20,200,20, "")
StringGadget(1, 20, 50, 200, 20, "")
ButtonGadget(2, 225, 50, 60, 20, "Show")
Repeat
    ev = WaitWindowEvent()
    Select ev
        Case #PB_Event_Gadget
            Select EventGadget()
                Case 2
                    If IsSimpleNumber(GetGadgetText(1))
                        SetGadgetText(0, UCase(GetGadgetText(1))+"= " + KeyName(Val(GetGadgetText(1))))
                    Else
                        SetGadgetText(0, UCase(GetGadgetText(1))+"= " + Str(KeyCode(GetGadgetText(1))))
                    EndIf
            EndSelect
        Case #WM_KEYDOWN
            SetGadgetText(0, KeyName(EventwParam()))
          
    EndSelect
Until ev = #WM_CLOSE 

Re: gestion du clavier

Publié : lun. 26/avr./2010 19:13
par Backup
Merci de ne pas transformer les topics de Dayvid a chaque fois en règlement de compte
personne ne nous oblige a répondre, mais inutile d'ajouter de l'huile sur le feu :)

Dayvid fait des fautes.. on ne pourra pas le changer... apprenons lui au maximum a écrire comme il faut... ça sera deja bénéfique :)

j'ai nettoyé le topic des messages en dehors de la question :) désolé...

Re: gestion du clavier

Publié : lun. 26/avr./2010 19:25
par boddhi
Il ne pouvait y avoir plus intelligente réponse... :lol:

Cordialement.