Bonjour,
Dans notre logiciel, nous avons voulu ajouter une petite fonctionnalité afin de pouvoir prendre en vidéo se qu'il se passe dans l'application.
Pour ce faire, je me suis basé sur des tutoriels C# qui utilisaient la bibliothèque Aforge.Video.FFMPEG : .
J'ai légèrement modifié ce qu'il y a dans le tutoriel afin de l'adapter à l'utilisation du logiciel.
J'ai créé un thread qui exécute toutes les 10 centièmes de seconde une procédure qui va me capturer ce qu'il y a sur mon écran.
Mon code est construit comme suie :
_bitmap est un System.Drawing.Bitmap dynamic
_graphics est un System.Drawing.Graphics dynamic
_picturebximg est un PictureBox
_writer est un VideoFileWriter dynamic
_writer = new VideoFileWriter()
_writer:Open(GF_s_RepTemp+"\Video_"+GF_s_DateAudit+".avi",Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
2,VideoCodec.MPEG4,1000000)
ChronoDébut(2)
Timer("PL_GoVideoTimer",10,1)
Procedure PL_GoVideoTimer()
_size est un System.Drawing.Size dynamic
_bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
_size = new "System.Drawing".Size(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
_graphics = System.Drawing.Graphics.FromImage(_bitmap);
_graphics:CopyFromScreen(GF_n_Source_x,GF_n_Source_Y,0,0,_size);
_picturebximg:Image = _bitmap;
_picturebximg:SizeMode = PictureBoxSizeMode.StretchImage;
_writer:WriteVideoFrame(_bitmap);
FinTimer(1)
L'enregistrement de la vidéo se passe très bien, or, je rencontre un problème au niveau du curseur, car il n'est pas visible dans la vidéo.
J'ai donc ajouté un icône représentant le curseur dans la vidéo pour chaque appel de ma procédure PL_GoVideoTimer() à l'aide de ce code :
_icon est un System.Drawing.Icon dynamic
_icon = new "System.Drawing".Icon(SystemIcons.Exclamation,40,40)
_position = CurseurPos(cpEcran)
_positionX = PoidsFaible(_position)
_positionY = PoidsFort(_position)
_graphics:DrawIcon(_icon,_positionX,_positionY)
Donc après l'ajout d'un icône simulant un curseur sur ma vidéo, je me suis aperçu que lors d'un clic sur un bouton contenant un menu contextuel, celui-ci n’apparaissait pas. A partir de là je suis coincé.
Avez-vous une idée afin de me débloquer ?
Un grand merci par avant.
Cordialement,
JonathanMessage modifié, 14 janvier 2019 - 11:00