[C#/WPF] PresentMon -> interface graphique ( FPS monitoring )

PresentMon -> interface graphique ( FPS monitoring ) [C#/WPF] - C#/.NET managed - Programmation

Marsh Posté le 31-10-2022 à 19:51:39    

:hello:  
 
https://exchangetuts.com/monitoring [...] 8864494445
 
Convertir le code ci-dessus en fonction ?
 
 
Un truc du genre :
https://codeforum.org/threads/syste [...] range.520/
 
 
Mais de toute évidence quelque chose m’échappe… :sweat:


Message édité par maxcolmx le 31-10-2022 à 20:37:34
Reply

Marsh Posté le 31-10-2022 à 19:51:39   

Reply

Marsh Posté le 01-11-2022 à 19:14:34    

Bonjour,
 
moi aussi j'ai rien compris. :o --verbose stp.

Reply

Marsh Posté le 02-11-2022 à 13:35:26    

Contexte :
 
https://zupimages.net/up/20/46/e7or.jpg
 
https://zupimages.net/up/20/52/4rmu.jpg
 
https://forum.hardware.fr/hfr/Overc [...] 7943_1.htm
 
 
Actuellement je récupère les données de MSI Afterburner
 
J’aimerais le rendre autonome
 
Je commence par les FPS
 
 
Le 1er lien du 1er post fonctionne en mod console
 
J’aimerais en faire une fonction qui me donnerait 2 variables
- FPS
- Processus target


Message édité par maxcolmx le 02-11-2022 à 13:35:51
Reply

Marsh Posté le 05-11-2022 à 15:00:56    

Et si tu sais coder et que tu as déjà fait le reste de l'appli de ton lien, c'est quoi le problème que tu rencontres pour sortir le code et l'intégrer où tu veux ?
Un indice : ça commence dans le Main :ange:

 

Message cité 1 fois
Message édité par TotalRecall le 05-11-2022 à 15:01:15

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-11-2022 à 16:15:58    

TotalRecall a écrit :

Et si tu sais coder et que tu as déjà fait le reste de l'appli de ton lien, c'est quoi le problème que tu rencontres pour sortir le code et l'intégrer où tu veux ?
Un indice : ça commence dans le Main :ange:
 


 
 
Ça n’aide pas
 
Pour info voici le code source du projet tel que je l’ai abandonné il y a 2 ans
( la version light / compteurs bleus )
 
https://drive.google.com/file/d/1iD [...] sp=sharing
 
A besoin de MSI Afterburner -> Installé et paramétré
 
C’est le problème   :o  
 
 
 
Mon niveau est codeur du dimanche
 
Pareil pour ReactJS ou la 3D visible ici :
https://d9so02tdw1aye.cloudfront.net/
 
 
Ce qui aiderait c’est du code
 
Le 1er lien du 1er poste en version Fenêtre ( Windows / WPF idéalement )
 
Ou un lien exploitable…

Message cité 1 fois
Message édité par maxcolmx le 07-11-2022 à 16:16:56
Reply

Marsh Posté le 07-11-2022 à 16:24:56    

Sauf que t'as toujours pas expliqué ton problème.
Aucune idée de si ton truc du premier lien fonctionne pour tous les programmes, mais tu as l'air de dire que ça te convient, hormis que c'est du Console.  
Et que tu es l'auteur d'un programme en C# qui fait du monitoring via WMI. Donc on peut supposer que tu sais développer.
 
Le code est court et plutôt simple, en 3 minutes de lecture j'ai compris le principe général de fonctionnement sans même l'exécuter, tout ce que t'as à faire c'est le copier coller, lancer le même code que le Main, et remplacer le Console.WriteLine dans OutputThreadProc par un truc qui envoie l'info là où tu veux l'afficher (avec un événement par exemple). Et là tu pourras afficher ça où tu veux.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-11-2022 à 19:16:42    

Le problème c’est que je n’arrive pas à reproduire le code pour une Fenêtre
 
J suis trop con  :o  
 
 
Ici mon échec cuisant :
https://drive.google.com/file/d/1vX [...] sp=sharing
 
( une simple Fenêtre )
 
 
 
Edit :
 
Les WMI étaient pour la version 1
 
J ai rapidement switcher pour la mémoire partagée ( plus rapide )
 
Mais oui, on s en fout  :o  
 


Message édité par maxcolmx le 07-11-2022 à 20:02:37
Reply

Marsh Posté le 09-11-2022 à 22:44:34    

First  :o  
 
J ai quelque chose
 
J reviens vers vous bientôt  

Reply

Marsh Posté le 10-11-2022 à 17:02:05    

https://zupimages.net/up/22/45/vuh4.jpg
 
 
https://drive.google.com/file/d/1gu [...] sp=sharing
 
 
Code sale   :o  
 
Mais il m’envoie de la data
 
J n arrive pas à afficher tous les processus comme dans le mode console
J’ai un problème avec mes List View
 
2 ans sans coder -> je suis rouillé   :o  
 
Et à un moment il faudra que je target le processus actif
 
Bleu -> OK
Rouge -> pas OK

Reply

Marsh Posté le 15-11-2022 à 20:45:06    

https://zupimages.net/up/22/46/iooo.jpg
 
 
https://drive.google.com/file/d/1EJ [...] sp=sharing
 
 
Code sale   :o  
 
 
Avancement  :whistle:  
 
 
Problèmes connus :
Ne tue pas les processus fermés   :kaola:  
Il me manque encore le target processus actif
 
Bleu -> OK
Rouge -> pas OK
 
 
Si vous avez des corrections à apporter j suis preneur   :D
 
 
 
Edit :
 

maxcolmx a écrit :



Mon niveau est codeur du dimanche



 
Correction
 
Je maîtrise le copier-coller  :o  

Message cité 2 fois
Message édité par maxcolmx le 16-11-2022 à 01:59:30
Reply

Marsh Posté le 15-11-2022 à 20:45:06   

Reply

Marsh Posté le 16-11-2022 à 11:15:33    

maxcolmx a écrit :


...
Problèmes connus :
Ne tue pas les processus fermés   :kaola:  
Il me manque encore le target processus actif
...


 
 
La version console non plus   :o  
 
Donc je pense que je peux dire que j ai plus ou moins reproduis ( copier / coller ) le code pour WPF   :whistle:  
 
Me reste le target
 

Reply

Marsh Posté le 16-11-2022 à 20:20:00    

https://zupimages.net/up/22/46/fnz1.jpg
 
 
Récupération de l'identifiant côté focus
 
Récupération de l'identifiant côté FPS   :sweat:  
 
 
Je pense les utiliser pour le "target"  
 
Mais je devrais peut être utiliser les noms
 
 
J'n'ai plus qu'a trouver comment j'vais faire ça   :o  
 

Reply

Marsh Posté le 17-11-2022 à 20:57:45    

maxcolmx a écrit :


...
J'n'ai plus qu'a trouver comment j'vais faire ça   :o  
...


 
 
https://zupimages.net/up/22/46/d939.jpg
 
 
J penses avoir trouvé une solution   :whistle:  
 
Elle vaut ce qu'elle vaut   :sweat:  
 
 
Maintenant va falloir nettoyer tout ca   :o  
 

Reply

Marsh Posté le 19-11-2022 à 01:49:56    

maxcolmx a écrit :


...
Maintenant va falloir nettoyer tout ca   :o  


 
 
 
Je vais bientôt partager le code
 
Le nettoyage prend plus de temps que prévu  
 
Il ouvre et ferme des portes
( anciennes et nouvelles )
 
 
J’en profite pour prendre un peu de recul et vous partager mes pensées personnelles
 
-> le code ne ment pas
-> c’est pour ça que j’aime bien cette discipline  
 
Mais je m’aperçois que c’est trop exigeant pour moi
EL-KRAKEN sera ma dernière contribution au code
 
 
Mais avant ça, faut le finir et le teaser
 
EL-KRAKEN… résurrection ?
EL-KRAKEN… le retour ?
 
 
Ouhai je cherche un titre accrocheur   :o

Message cité 1 fois
Message édité par maxcolmx le 19-11-2022 à 01:54:44
Reply

Marsh Posté le 21-11-2022 à 22:56:22    

https://zupimages.net/up/22/47/kzhx.jpg
 
 
 
https://drive.google.com/file/d/1C0 [...] sp=sharing
 
 
 
Nettoyage :
 
- j y vois plus claire
 
- il reste peut-être quelque coquilles  
 
 
 
Target :
 
 
- 1ère tentative -> échec
 
J’avais tenté un truc du genre
 
Résultat = rechercher dans list COMBO, les FPS, ou ID PROCESS = ID FOCUS  :whistle:  
 
 
- 2ème tentative -> fonctionnelle
 
J’ai bidouillé   :o  
 
 
- 3ème tentative -> échec
 
Un mixe de la 1ère et 2ème tentative
 
 
 
Si qq un à mieux, j suis preneur   :D  
 

Reply

Marsh Posté le 22-11-2022 à 16:18:19    

maxcolmx a écrit :

...
Target :
...
 
Si qq un à mieux, j suis preneur   :D  


 
 
J ai trouver   :D  
 
 
Le gars du 2ème lien de mon 1er post avait déjà réglé le problème  :sleep:  
 
Y a plus qu'a copier / coller   :o  
 
 
Bon par contre ca va foutre en l'aire pas mal de trucs
( je ne verrais plus tout les processus   :p  )
 
Mais en même temp c'est ce que je voulais faire   :o  
 
 
Je verrais bien...
 
 
 
Edit :
 
J'ai vu, je vais doubler la fonction OutputThreadProc()
 
Parce que je veux garder les autres fitures pour ceux qui viendraient ici dans le futur  
 
 
Sinon pour info ça fonctionne  
 
Et je voulais le faire +/- de cette façon
 
Ouhai à un moment je me suis dis : " Et ca ne serait pas mieux de filtrer directement à la source ? "   :o  
 
 
Le code arrive   :sleep:  
 
 

Message cité 2 fois
Message édité par maxcolmx le 22-11-2022 à 18:25:44
Reply

Marsh Posté le 23-11-2022 à 17:46:30    

maxcolmx a écrit :


...
Sinon pour info ça fonctionne  
...


 
 
Erratum   :jap:  
 
 
J ai parlé trop vite   :o  
 
Son code ne fonctionne pas   :cry:  
 
Ca affiche le dernier processus de la liste <-> d ou mon erreur en test rapide   :ange:  
 
 
Donc à ce jour je n ai qu'une méthode fonctionnelle   :sweat:  
 

Reply

Marsh Posté le 30-11-2022 à 10:18:05    

maxcolmx a écrit :


...
Problèmes connus :
Ne tue pas les processus fermés   :kaola:  
Il me manque encore le target processus actif
...
 


 

maxcolmx a écrit :


...
La version console non plus   :o  
...
 


 

maxcolmx a écrit :


...
Ouhai à un moment je me suis dis : " Et ca ne serait pas mieux de filtrer directement à la source ? "   :o  
...


 
 
 
Idée de merde   :o  
 
-> Ne tue pas les processus fermés
 
Comportement par défaut
 
 
 
La doc confirme :   :o  
 
https://github.com/microsoft/perfvi [...] Monitor.cs
 
/* PAR DÉFAUT LES SESSIONS ETW SURVIVENT À LA MORT DU PROCESSUS QUI LES CRÉE ! */
 
 
 
Quid du comportement non par défaut ?
 
-> une prise de tête assurément   :o  
 
 
 
En l'état :
 
- j'ai un code qui fonctionne à défaut d'être élégant   :o  
 
- et faut avancer
 
 
 
Prochaine étape :
 
S'attaquer au matos
 
Open Hardware Monitor devrait faire le job   :whistle:  
 
Qu'est ce qui pourrait mal se passer ?   :o

Message cité 1 fois
Message édité par maxcolmx le 30-11-2022 à 10:19:45
Reply

Marsh Posté le 30-11-2022 à 10:39:38    

Pour info :
 
Process.GetProcessById()
 
Donne de bon résultats
 
Ca filtre l'ID, le nom mais pas les FPS    :cry:  
 
Mais peut être que qq chose m'échappe   :whistle:  
 

Reply

Marsh Posté le 30-11-2022 à 18:07:54    

https://zupimages.net/up/22/48/34ti.jpg
 
 
Le code :
 
https://drive.google.com/file/d/19l [...] sp=sharing
 
 
 
Propreté -> acceptable   :o  
 
Coquilles -> oui, probablement   :sweat:  
 
 
 
 
Pour info :
 
Le code console C++ permet de filtrer un processus à l'exécution et d'afficher son FPS
 
https://azurplus.fr/comment-surveil [...] indows-10/
 
 
Comme je suis un malin  :D   je me suis baladé dans le code source ( C++ ) de PRESENT MON
 
L'idée est de copier la méthode ou au moins me donner une piste
 
 
Alors je retrouve bien le bidule  
 
J'essaie de remonter la piste  
 
Mais je fini toujours par me noyer à un moment  :sweat:


Message édité par maxcolmx le 30-11-2022 à 18:15:52
Reply

Marsh Posté le 30-11-2022 à 18:17:32    

Plop,
Je ne comprends pas tout à tes posts (le style est particulier on va dire :whistle: ) mais comme tu mentionnes Open Hardware Monitor, je te fais un petit feedback sur le sujet. Je m'en sers depuis des années comme dépendance dans une appli web qui me permet de monitorer un serveur.
C'est une très bonne solution, mais avec quelques carences (par exemple j'ai dû faire des évols dessus pour récupérer je ne sais plus quoi, notamment au niveau des DD et du SMART), mais surtout la fréquence de mise à jour est très aléatoire.
Par exemple la version actuellement dispo ne supporte probablement pas du tout les AMD Zen 4 et Intel Core 13x.

 

Et j'ai vu qu'il y a un fork qui semble beaucoup plus actif : https://github.com/LibreHardwareMon [...] areMonitor
Du coup je te conseille de le tester lui en premier.


Message édité par TotalRecall le 30-11-2022 à 18:19:09

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 02-12-2022 à 21:47:26    

@TotalRecall
 
Merci pour l info   :jap:  
 
 
 
@tous
 
Je confond PresentMon et PerfView depuis le début  
 
 
PresentMon n'est jamais utilisé  
 
PresentMon sert juste de modèle   :sleep:

Message cité 1 fois
Message édité par maxcolmx le 02-12-2022 à 21:48:11
Reply

Marsh Posté le 06-12-2022 à 20:41:17    

maxcolmx a écrit :


...
Open Hardware Monitor devrait faire le job   :whistle:  
 
Qu'est ce qui pourrait mal se passer ?   :o


 
 
Ben en faite pas mal de choses   :o  
 
 
Déjà encore merci @TotalRecall   :jap:  
 
 
 
En vrac :
 
- FPS -> en sommeil
 
- feux sur le matos
 
- les tutos sont rares et imprécis
 
- mais j m en sort
 
- processeur et RAM ok
 
- je bloque sur la CG / j comprend pas / même méthode que proc et RAM  
 
 
 
Code sale vers vous bientôt mais j suis preneur de code fonctionnel   :o  
 
 
 

Reply

Marsh Posté le 07-12-2022 à 14:23:51    

Comment expliquer ca simplement ?
 
- Open Hardware Monitor -> l ancêtre non mis a jour
 
- Libre Hardware Monitor -> un fork mis à jour et traitant plus de données -> conseiller par TotalRecall
 
 
 
Mon code repose sur Libre Hardware Monitor -> je n accède pas à ma carte graphique   :fou:  
 
Par acquis de conscience je viens d essayer avec Open Hardware Monitor et j y accède   :o  
 
 
 
Moralité... Fait chier  
 
 
Bon ben j vais coder les 2 solutions et j aviserais...


Message édité par maxcolmx le 07-12-2022 à 14:24:23
Reply

Marsh Posté le 07-12-2022 à 17:27:24    

Tu as tenté de poster une issue sur le github ? Ou de débogger un peu le truc ?
J'ai souvenir que le code est plutôt simple et propre, surtout si tu as une version qui fonctionne à côté...


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-12-2022 à 22:12:46    

TotalRecall a écrit :

Tu as tenté de poster une issue sur le github ? Ou de débogger un peu le truc ?
J'ai souvenir que le code est plutôt simple et propre, surtout si tu as une version qui fonctionne à côté...


 
Non, je ne me sens pas légitime et c est sûrement moi qui ai loupé un truc   :jap:  
 
 
 
Mais tout de suite place au direct  :D  
 
 
https://zupimages.net/up/22/49/hyrz.jpg
 
 
Le code :
 
Lien mort
 
 
 
J ai enlevé les petites roues   :o  
( MSI Afterburner )
 
Je suis autonome
 
EL-KRAKEN est stand alone   :sol:  
 
 
 
Mais il reste du boulot   :sweat:  
 
- ici avec Open Hardware Monitor
 
- trouver ou j ai merdé avec Libre Hardware Monitor   :whistle:  
 
- pourquoi c est plus fluide dans Visual Studio VS l exe   :heink:    ->  c est vexant   :o
 
- avoir des noms de variable plus explicite   :o  
 
- nettoyer
 
- bla bla bla


Message édité par maxcolmx le 30-12-2022 à 12:19:37
Reply

Marsh Posté le 08-12-2022 à 20:20:02    

Libre Hardware Monitor   :o  
 
 
 
Bon rien y fait -> accès carte graphique
 
Toutes tentatives = échecs
 
 
 
Ce qui m inquiète le plus, c est ce code en mode console:
 
https://github.com/LibreHardwareMon [...] areMonitor
 
 
 
Il voit le GPU intégrer au CPU mais pas mon GPU ( 3090 Ti FE )
 
 
Hypothèse -> désactiver le GPU intégré au CPU dans le bios ?   ->   ca me casse déjà les bonbons   :o  
 
 
 
L un d entre vous peut essayer ce code ?  ->    :ange:  
 
Ou mieux -> me dire pourquoi j suis un gros débile   :o  
 

Reply

Marsh Posté le 09-12-2022 à 14:24:34    

Je ne suis pas un gros débile   :o  
 
 
Voici mon raisonnement :
 
Libre Hardware Monitor est un fork
 
Ca veut dire qu au tout début leur code était très proche de l originale
 
Et qu il ont merdé au fil des versions
 
Je les ai donc toutes essayé avec le code console qu ils fournissent en example
 
0.8.5 -> ok
0.8.6 -> ok
0.8.7 -> ok
0.8.8 -> non
0.8.9 -> ok
0.9.0 -> ok
0.9.1 -> non
 
CQFD
 
J ai posé le diagnostique
 
 
 
Maintenant que faire ?
 
- garder Open Hardware Monitor au chaud en secours
 
- utiliser la dernière version fonctionnelle de Libre Hardware Monitor ( 0.9.0 )
 
 
 
Bon par contre je ne sais pas comment leur faire remonter l information   :sweat:  
 

Reply

Marsh Posté le 09-12-2022 à 16:00:56    

Bah tu peux ouvrir une issue sur leur github comme je te proposais précédemment, et utiliser dans ton soft la version 0.9.0 puisque tu as vu qu'elle fonctionne ! La 0.9.0 a l'air de dater de mai.
 
Si t'as pas essayé tu peux aussi utiliser la dernière version de leurs sources plutôt que la 0.9.1, si ça se trouve le problème est déjà identifié et corrigé.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 09-12-2022 à 16:58:15    

J ai la source de la 0.9.1
 
Elle compile
 
L exe voit ma CG
 
 
 
Dans le code console :
 
J ai remplacé le NuGet par la dll
 
Mais non il ne voit ma pas CG   :o


Message édité par maxcolmx le 09-12-2022 à 16:59:46
Reply

Marsh Posté le 10-12-2022 à 21:09:16    

https://zupimages.net/up/22/49/xhpx.jpg
 
 
Le code :
 
Lien mort
 
 
L exe :
 
Lien mort
 
 
 
UX ( interface utilisateur ) :
 
Le moteur bien qu améliorable est fonctionnel, j ai donc travaillé sur la carrosserie
 
J ai mis ma menace à exécution   :o  
 
Inspiration :
https://www.google.com/imgres?imgur [...] egUIARCkAQ


Message édité par maxcolmx le 30-12-2022 à 12:20:22
Reply

Marsh Posté le 11-12-2022 à 10:20:11    

LCDMono2 <- nom de la police utilisée <- doit être installée sur votre system   :jap:  
 
 
Et oui il y encore des détails à régler   :sweat:
 

Reply

Marsh Posté le 13-12-2022 à 20:17:27    

Encore une version de test   :jap:  
 
Nettoyage et divers corrections mineurs -> j arrive à la fin   :sweat:  
 
Toujours qq problèmes de fluidité -> exe VS débogage  -> je ne comprends pas   :pt1cable:  
 
 
 
Le code :
 
Lien mort
 
 
L exe :
 
Lien mort
 
 
 
Si vous avez des trucs à dire, c est le bon moment   :o

Message cité 1 fois
Message édité par maxcolmx le 30-12-2022 à 12:21:07
Reply

Marsh Posté le 14-12-2022 à 19:26:30    

maxcolmx a écrit :


...
Toujours qq problèmes de fluidité -> exe VS débogage  -> je ne comprends pas   :pt1cable:  
...


 
 
Bon... Je sais déjà que je n y arriverais pas   :kaola:  
 
De plus il m a toujours cassé les choses ce graphique   :o  
 
 
Je le gardais par fierté mal placée et les heures passées dessus  
 
Mais je dois me rendre à l évidence -> je ne sais pas faire  
 
 
En plus il sert a rien   :o  
 
Enfin est il nécessaire ?
 
Apport il quelque chose ?
 
En l état non !
 
Autant le supprimer !
 
 
Voilà, c était ma pensée du soir   :o  
 
Bon match à tous   :jap:  
 

Reply

Marsh Posté le 20-12-2022 à 15:33:59    

Il faut sauver le soldat graphique   :o  
 
 
Je l ai viré, lancé l exe -> il manque qq chose  [:canaille]
 
 
J ai plusieurs angles d attaque et pour l instant le Thread.Sleep(1000) dans la class FPS_LIST ( truc qui calcul le nbr de FPS ) a une bonne tête de coupable   :o  
 
Je le saurais ce soir   :jap:

Message cité 1 fois
Message édité par maxcolmx le 20-12-2022 à 15:34:52
Reply

Marsh Posté le 20-12-2022 à 19:22:08    

maxcolmx a écrit :


...
J ai plusieurs angles d attaque et pour l instant le Thread.Sleep(1000) dans la class FPS_LIST ( truc qui calcul le nbr de FPS ) a une bonne tête de coupable   :o  
...


 
 
Erreur judiciaire   :o  
 
 
 
Angle d attaque n°2 :
 
Virer l animation du code behind pour la mettre dans le XMAL
 
Raisonnement -> XMAL à la priorité   :whistle:  
 

Reply

Marsh Posté le 21-12-2022 à 00:09:33    

maxcolmx a écrit :


...
Virer l animation du code behind pour la mettre dans le XMAL
 
Raisonnement -> XMAL à la priorité   :whistle:  


 
 
Théorie invalidée / idée de merde   :o  
 
 
 
Angle d attaque n°3 :
 
Raisonnement -> persistance rétinienne -> désynchroniser dans le code pour synchroniser visuellement  
 
[:alexsilvio]

Reply

Marsh Posté le 21-12-2022 à 01:11:08    

Ouhai bon celle-là, j l ai fait un peu à l instinct mais ca à l aire de fonctionner  [:jubijub]
 
C était le dernier verrou  
 
 
 
Encore une version de test / blablabla
 
 
 
L exe :
 
Lien mort


Message édité par maxcolmx le 30-12-2022 à 12:22:56
Reply

Marsh Posté le 21-12-2022 à 13:23:35    

Je drap
 
Je code pas mais l'appli m'intéresse ;)

Reply

Marsh Posté le 21-12-2022 à 13:53:38    

Allé un premier petit retour  
 
Quand on a plus le focus sur la fenetre du soft le model du CPU et du GPU n'apparait plus, il est remplacé par "processeur" et "Carte Graphique"
 
C'est de l'enculage de mouche mais autant laisser l'info du model  
 
Focus sur El Kraken :
 
https://i.ibb.co/4ZF3fgG/elkraken2.png
 
Focus sur le bureau :
 
https://i.ibb.co/S6Q1vgh/elkraken.png
 
Je suppose que l'ajout d'un menu "option" est prévu ? pour régler par exemple le temps de rafraichissements des sensors , si ce n'est pas le cas, ca serait une bonne idée :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed