Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Fonctions d'envoyer de touches à un objet interne ou externe | |
| | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 14:43 | |
| J'ai intégré les fonctions d'envoi de touches à KGF.dll:
V1.50 06/09/2012 ajout fonctions d'envoi de caractères à un objet SendString, SendStringChild SendStringAsChars, SendStringChildAsChars SendSingleChar, SendChildSingleChar
J'ai fait un effort particulier au niveau de la doc. On peut travailler et 3 modes différents: 1. envoyer une seule touche selon les codes VK_xxx (documentées dans KGF.hlp) 2. envoyer une chaîne de caractères contenant une suite de ces touches 3. envoyer une chaîne de caractères de texte brut
On peut avoir deux types de cibles: 1. un objet identifié par son handle 2. une fenêtre fille d'un objet identifiée par son handle
Ce deuxième type de cible n'a un intérêt que si l'on s'adresse à un programme externe au programme Panoramic qui émet l'appel.
Prenons le cas du NotePad: Si l'on envoie une chaîne au handle du NotePad, cela remplace le titre de la fenêtre du Notepad ! Si l'on envoie la même chaîne à la fenêtre fille du handle du NotePad, elle apparaît bien dans la zone de texte.
Dernière édition par Klaus le Lun 10 Sep 2012 - 17:26, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 18:56 | |
| Merci Klaus, Je prendrais tout mon temps pour voir le résultat, surtout que c'est moi qui en est parlé.
Pour l'instant, je viens par acoupt sur mon ordi, et je ne peux pas regarder. Par contre j'ai eu du mal de trouver l'aide. J'ai été sur l'index et taper Send... pour voir apparaitre les fonctions. Je n'ai pas trouvé la bonne rubrique.
Dès que je peux je fais des essais. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 19:34 | |
| Voilà ce qu'il faut faire: Double-clic sur KGF.hlp: Double-clic sur "Sommaire": Double-clic sur "Fonctions d'envoi de touches" Puis clic sur une des six fonctions listées en bas (exemple: la première): Tout est bien là. | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 21:45 | |
| Merci pour l'explication. La solution est l'appui sur sommaire. Il y en a déjà un en marge, celui-là je ne l'avais pas vu |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 22:43 | |
| Voici un petit programme qui permet de voir l'utilisation de certaines de ces fonctions: - Code:
-
' test_envoi_touches.bas
label go
dim notepad%, i%, s$
dll_on "KGF.dll"
edit 1 : top 1,10 : left 1,10 : width 1,300
button 2 : top 2,50 : left 2,10 : caption 2,"Go" : on_click 2,go
end
go: execute "notepad.exe" pause 500 notepad% = handle_form("Sans titre - Bloc-notes")
s$ = "Pour EDIT" i% = dll_call2("SendString",handle(1),adr(s$))
s$ = "Nouveau titre" ' le texte suivant va dans la caption de la form du Notepad ! i% = dll_call2("SendString",notepad%,adr(s$))
s$ = "Texte pour Notepad" ' le texte suivant va dans la form du Notepad ! i% = dll_call2("SendStringChild",notepad%,adr(s$))
s$ = chr$(18)+"F" ' envoi ALT F à Notepad (ouvrir le menu Fichiers i% = dll_call2("SendStringChildAsChars",notepad%,adr(s$))
return
| |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 22:57 | |
| Je viens d'essayer, j'ai le message suivant: (29) Expression arithmétique incorrecte : Erreur dans une fonction. Line : 21 |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 23:24 | |
| Tu es certain d'utiliser la bonne version ? V1.50 ? | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Jeu 6 Sep 2012 - 23:52 | |
| Oui ça marche. Tu es chiant, j'ai téléchargé à 14h33, et à 14h43, tu remets la version.
Par contre j'ai eu du mal de poster depuis l'essai. A chaque fois que j'essayais d'écrire, j'avais (je mets des accolades à la place de []{center}{/center} à la place des caractères.
Je enfin compris qu'il fallait que j'appuie sur ALT pour sortir de ce problème. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 0:04 | |
| Eh oui. J'avais bien dit dans la doc que l'état des touches SHIFT, CONTROL et ALT est géré comme une bascule? Et si on envoie ALT, par exemple, sans envoyer un autre ALT derrière, Windows croit que la touche ALT est toujours enfoncée.
Lorsque tu frappes toi-même sur ALT, cela envoie un premier message KEY_DOWN pour ALT à Windows. Ce message est ignoré - Windows croit savoir que ALT est déjà enfoncé. Mais lorsque tu relâches la touche, cela envoie un KEY_UP pour ALT à Windows, et là, Windows le prend en compte correctement.
Si tu envoies un autre ALT par programme, le problème disparaît. Enn fait, ce n'est pas un problème, mais le fonctionnement normal de ces routines. Elles simulent des frappes de touches au clavier. Et pour cela, je gère SHIFT, CONTROL et ALT de la même manière - premier coup: on enfonce la touche et on la garde enfoncée, second coup: on relâche la touche.
Bon, il suffit de le savoir pour pouvoir le gérer correctement. | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 16:21 | |
| Regardes Klaus, j'ai l'impression que les fonctions que tu présentes, ne correspondent pas avec l'exemple fourni. Ainsi je vois: - Citation :
- res% = dll_call2("SendString",hnd%,adr(txt$))
et dans l'exemple: - Citation :
- res% = dll_call2("SendStringAsChars",handle(0),adr(txt$))
Il y en a plusieurs comme cela. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 16:26 | |
| | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 16:48 | |
| Klaus, je n'arrive pas à faire la même chose avec le clavier qu'AutoIt. Pourquoi cette histoire de handle. Je ne cherche que la simulation de clavier, ce que je faisais habituellement avec AutoIt. Si je veux envoyer des codes sur une page Internet, je ne vois pas, alors qu'avant c'était très simple. Autre chose, c'est quoi, cette série de code qu'on reçoit par exemple avec: - Code:
-
dim dll$ : dll$="KGF.dll"
dim res%, hnd%,car$ , handle% dll_on dll$ car$= "salutations pour le travail" :' VK_TAB wait 5000 :' le temps de cliquer sur une autre fenêtre res% = dll_call2("SendStringAsChars",handle%,adr(car$)) dll_off
En ayant cliqer sur PsPad entre temps pour écrire dessus, cela m'ouvre le fichier d'aide de PsPad, et ensuite je reçois: 119/. / 5 119. Je vais faire une grosse pause. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 17:06 | |
| Tu n'as pas chargé handle% avant d'appeler la fonction. Toutes mes fonctions envoient des touches ou tu texte à un objet Windows identifié par un handle. Et ce handle doit évidemment être connu auparavant. Essaie ceci (en adaptation de ton code): - Citation :
dim dll$ : dll$="KGF.dll"
dim res%, hnd%,car$ , handle% dll_on dll$ car$= "salutations pour le travail" :' VK_TAB wait 5000 :' le temps de cliquer sur une autre fenêtre handle% = ... ici, mettre le handle de la fenêtre sur laquelle on veut envoyer les touches... ' tu peux faire cela par exemple par handle% = handle_form("... caption de la form visée ..;") res% = dll_call2("SendStringAsChars",handle%,adr(car$)) dll_off D'autre part, tu n'utilises pas la bonen fonction. Les fonctions avec le mot Char dans le nom envoient des caractères de commande définis par la table des codes VK_xxx (elle est dans la foc). Or, tes caractères miniscules sont justement des codes de ce genre, pour certains. Si tu veux envoyer tu texte simple, utilise plutôt la fonction SendString ou éventuellement SendStringChild. Ces fonctions envoient le texte tel qu'il est, sans l'interpréter. Dans ton cas, ce serait: - Code:
-
res% = dll_call2("SendString",handle%,adr(car$)) pour un envoi à la fenêtre identifiée par handle%, ou - Code:
-
res% = dll_call2("SendStringChild",handle%,adr(car$)) pour un evoi à la fenêtre fille de cette fenêtre (comme pour NotePad, par exemple). | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 17:54 | |
| Pour la bonne fonction, j'en ai essayé plusieurs, et j'ai pris la dernière qui était en cours. Pourquoi vouloir absolument associer un handle. C'est ça que je ne comprend pas. Comment veux-tu connaitre celui-ci par exemple pour une page internet, ou un programme dont tu ne connais le titre, ou que tu n'as pas de référence?
Avec AutoIt je fais d'abord une sélection soit par un clic sur une fenêtre ou un objet, et ensuite j'envoie les caractères, et les caractères que j'envoie, sont comme si je tapais sur mon clavier. Le clavier n'a pas a savoir où je tape, c'est le programme qui le guide avant. Au peu, si il n'y a pas de Handle, par le jeu de <ALT TAB> sélectionner le programme qui doit recevoir les touches. Le clavier, c'est le clavier! Je veux une simulation de clavier. Si tu ne peux pas c'est pas grave, vu qu'AutoIt le fais. A partir de là, je peux même proposé un programme en temps voulu qui avoir cette possibilité, mais si tu peux simplement faire une simulation d'appui de touches sans le handle, tu laisses ce que tu as fait, car c'est utile, et tu fais une fonction send touche$ sans plus. La sélection de la fenêtre ou de l'objet, on le fait à part. Là, je ne peux pas me servir de tes fonctions. Tu avais dis que si le handle est était à 0, on en avait pas besoin (enfin moi je l'ai compris comme celà). Si c'est problèmatique, tu le dis et tu laisses tomber. Je suis le seul demandeur, et je sais comment procéder. Tu n'as pas d'ordre a recevoir de moi. Tu le fais comme tu l'entends. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 18:51 | |
| Oups ... j'avais oublié ce truc du handle à zéro pour cibler l'objet ayant le focus... C'est rétabli. Si tu passes explicitement 0 ou une variable ayant la valeur 0, le texte ira alors à l'objet ayant le focus, dans la form qui est en foreground. Et pour faciliter les choses, j'ai ajouté une fonction: - Code:
-
res% = dll_call0("GetActiveControl") Cette fonction retourne justement le handle du contrôle actif, quelque soit le programme (Panoramic ou étranger) et quelque soit la form. Elle cherche toujours la form en foreground, et dans cette form, l'objet ayant le focus. Si vraiment rien n'est trouvé, la fonction retourne 0, ce qui signifie le bureau. On peut utiliser cette fonction pour surveiller par exemple si un objet particulier a gardé le focus ou non. Mais pour envoyer des touches ou du texte simple à l'objet ayant le focus, ce n'est pas nécessaire: la valeur 0 suffit à la place du handle. KGF.dll passe à la version V1.51 du 07/09/2012. | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 20:09 | |
| C'est pas encore cela. Je t'ai répondu, mais j'ai fermé l'onglet par mégarde, donc: Avec NotePad ça marche Bien pour la fonction de récupérer le handle. Au poil! Mais j'ai essayé de plusieurs façon, et c'est la forme Panoramic exécut qui reçoit le clavier. Mais tu n'es pas loin de russir, car avec le programme, en testant de différentes manières dont voici le dernier jet: - Code:
-
dim dll$ : dll$="KGF.dll" ' execute "notepad.exe" ' pause 500 ' notepad% = handle_form("Sans titre - Bloc-notes") dim res%, hnd%,car$ , handle%
dll_on dll$ pause 5000 res% = dll_call0("GetActiveControl") handle%=res% ' handle%=0 car$= chr$(9)+"salutations pour le travail. Regardes moi bien dans les yeux:... je t'embrasse, (et je n'en suis pas)" :' VK_TAB ' res% = dll_call2("SendStringChild",handle%,adr(car$)) res% = dll_call2("SendString",handle%,adr(car$)) dll_off
Je vois que le teste est passé (je l'ai envoyé dans la fenêtre pour te répondre: Voila. voila! |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 23:16 | |
| s-tu essayé ceci: - Code:
-
' test_envoi_touches.bas
label go
dim notepad%, i%, s$
dll_on "KGF.dll"
edit 1 : top 1,10 : left 1,10 : width 1,300
button 2 : top 2,50 : left 2,10 : caption 2,"Go" : on_click 2,go
end
go: execute "notepad.exe" pause 1000 notepad% = handle_form("Sans titre - Bloc-notes")
s$ = "Pour EDIT" i% = dll_call2("SendString",handle(1),adr(s$))
s$ = "Nouveau titre" ' le texte suivant va dans la caption de la form du Notepad ! i% = dll_call2("SendString",notepad%,adr(s$))
s$ = "Texte pour Notepad" ' le texte suivant va dans la form du Notepad ! i% = dll_call2("SendStringChild",notepad%,adr(s$))
s$ = chr$(18)+"F" ' envoi ALT F à Notepad (ouvrir le menu Fichiers i% = dll_call2("SendStringChildAsChars",notepad%,adr(s$))
return
Ce programme montre comment on envoie un texte dans un EDIT du même programme, comment on remplace le titre d'une fenêtre NotePad (!), comment on envoie du texte dans la partie texte du NotePad, et comment on ouvre le menu Fichier du Notepad. Tout ceci sans positionner le curseur, sans clic simulé, juste en envoyant des touches... | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Ven 7 Sep 2012 - 23:53 | |
| Avec le notepad, j'ai pas de problème, ni pour la forme Panoramic. C'est avec internet, que cela ne marche pas. Ce qui est curieux, en regardant le WindowInfo, c'est que le texte passe, mais ne s'affiche pas! On voit le texte dans la partie texte dans l'image, mais pas dans Poster une réponse. Je ne sais pas où cela va. Tous les disons faux objets de la fenêtre ont la même class. Seul l'instance change. La barre des menus c'est 3, celui de la navigation est 2, des onglets c'est 1, le reste est principalement 18. Je ne vois aucune différence entre poster une réponse, les smileys, enfin tout ce qui est en dessous des onglets.
Je ferais un essai avec Autoit pour voir si il y a une différence. |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 0:08 | |
| Laisses tomber: Avec AutoIt, j'ai le même résultat pour internet. C'est pas la bonne solution. Merci de ta patience. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 0:24 | |
| Je suis en train de faire des tests approfondis, car GetActiveControl n'est pas si infaillible que ça... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 1:45 | |
| Ca y est - je crois que j'y suis arrive. V1.52 08/09/2012 correction d'un bug avec SendString et SendStringChild On peut maintenant envoyer du texte à n'importe quelle zone de saisie qui a le focus - un EDIT di programme en cours, la fenêtre de saisie de Notepad, la fenêtre de saisie de Word, de Notepad++, ... Voici la démo complétée. Lance d'abord le programme dans lequel tu veux récupérer du texte. Puis lance le programme de démo. Clique sur le bouton - tu disposes d'un PAUSE 1000 pour mettre ton programme cible en avat-plan et de cliquer dans la zone dans laquelle tu veux récupérer le texte. Si le délai est trop court, rallonge-le à la ligne 16, immédiatement après le label go: . Tu verras un message s'inscrire dans le champ de saisie choisi, via l'envoi avec handle 0 pour "zone ayant le focus". Ensuite, NotePad va s'ouvrir. Son titre sera change, et le menu Fichiers s'ouvre. Clique alors sur ALT pour fermer le menu Fichiers, et tu verras du texte envoyé à NotePad via son handle. Et tu verras aussi que le EDIT du programme de Panoramic a re_u aussi un message, via son handle. - Code:
-
' test_envoi_touches.bas
label go
dim notepad%, i%, s$
dll_on "KGF.dll"
edit 1 : top 1,10 : left 1,10 : width 1,300
button 2 : top 2,50 : left 2,10 : caption 2,"Go" : on_click 2,go
end
go: pause 1000 s$ = "Texte pour Word" ' le texte suivant va dans la form active qui est censée être Word ' ou n'importe quel autre programme avec un champ de saisie ayant le focus i% = dll_call2("SendString",0,adr(s$)) pause 300
execute "notepad.exe" pause 1000 notepad% = handle_form("Sans titre - Bloc-notes")
s$ = "Pour EDIT" i% = dll_call2("SendString",handle(1),adr(s$))
s$ = "Nouveau titre" ' le texte suivant va dans la caption de la form du Notepad ! i% = dll_call2("SendString",notepad%,adr(s$))
s$ = "Texte pour Notepad" ' le texte suivant va dans la form du Notepad ! i% = dll_call2("SendStringChild",notepad%,adr(s$))
s$ = chr$(18)+"F" ' envoi ALT F à Notepad (ouvrir le menu Fichiers i% = dll_call2("SendStringChildAsChars",notepad%,adr(s$))
' message "fait"
return
Rien n'a changé dans la façon d'utiliser les fonctions, et la don n'est pas changée non plus. Juste une correction de bug. | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 7:34 | |
| Bien, mais comment fais-tu pour envoyer <CTRL>v j'ai essayé chr$(17)+"v" et - Code:
-
s$="VK_CONTROL v" i% = dll_call2("SendString",handle(0),adr(s$)) J'ai essayé de le récupérer dans le memo d'à côté, juste pour savoir si c'était bon, mais rien. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 11:04 | |
| Il fait construire une chaîne de caractères dans laquelle chaque caractère est une représentation décimale entr 0 et 255 du VK code corrspondant. Voici ce que dit KGF.hlp sur la touche CONTROL: - Citation :
- 17: VK_CONTROL 17 CTRL key
Donc, la valeur décimale 17 signifie CONTROL. Ensuite, il faut se souvenir que les touches SHIFT, CONTROL et ALT sont des bascules qui changent simplement de position chaque fois qu'on envoie ces touches. Donc, en conséquence, pour envoier ctrl_v, tu fais ceci: - Code:
-
dim s$ s$ = chr$(17) + "v" + chr(17)
et tu utilises la fonction SendStringAsChars. L'effet sera le suivant: 1. le premier caractère place le clavier en mode CONTROL 2. le second caractère sera transmis en ctrl-v 3. le troisième caractère enlève le mode CONTROL du clavier (sinon, tout caractère envoyé par la suite comme ctrl-x, même ce qui est frappé réellement au clavier. | |
| | | Invité Invité
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 13:00 | |
| ça ne marche pas. Tu es sure que hande avec 0 comme paramètre fonctionne? J'ai essayé plusieurs handle, mais il n'y a pas de copie dans le memo 2. De plus après un item_add, il y a normalement un saut de ligne, là cela s'écrit à la suite. - Code:
-
label go dim envoi$ ,i%,s$ ,handle% , version$
dll_on "KGF.dll" version$ = DLL_call1("KGFdllVersion",adr(version$)) message version$ :' reçoit 151 list 1:width 1,250 item_add 1,"panoramic@klausgunther"+chr$(9)+"panoramic123" item_add 1,"panoramic@cosmos70"+chr$(9)+"panoramic123" memo 2:left 2,210 handle%=handle(2) on_click 1,go ' execute "http://www.mydrive.ch/login" end go: envoi$= item_index$(1) caption 0, envoi$ clipboard_string_copy envoi$ clipboard_paste 2 : ' dans un premier temps wait 2000 set_focus 2 s$= chr$(17) + "v" + chr$(17) i% = dll_call2("SendStringAsChars",handle%,adr(s$)) item_add 2,"2ème envoi" :' pourquoi pas de saut à la ligne? c'est pas habituel i% = dll_call2("SendString",handle%,adr(envoi$)) item_add 2,"----------------" return ' plusieurs choses: il ne se passe rien avec les fonctions. ' avec item_add, il n'y a pas de saut ligne suivante
Je commence à penser que je suis bouché! ou je me trompe à moins que |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe Sam 8 Sep 2012 - 14:22 | |
| OK. J'ai vu le problème et je m'en occupe. J'étais tellement content d'avoir réussi à envoyer correctement vers un programme externe que je ne me suis pas rendu compte que ça ne marche plus vers un objet du programme lui-même... | |
| | | Contenu sponsorisé
| Sujet: Re: Fonctions d'envoyer de touches à un objet interne ou externe | |
| |
| | | | Fonctions d'envoyer de touches à un objet interne ou externe | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |