Bonjour à tous!
J'ai un petit souci avec un activeX Windows Media Player et sa fonction Close().
En effet, je charge un fichier "AVI" à l'aide de cet ActiveX pour l'afficher.
Il est possible de changer de fichier affiché en cliquant sur un bouton. A ce moment là, le nouveau fichier choisi est copié dans le repertoire du logiciel mais seulement après avoir supprimé l'ancien...
Mais le probleme, c'est que l'activeX refuse visiblement catégoriquement de relacher la main sur ce fichier. Ce qui fait que j'ai une erreur à chaque fois que je lance la fonction de suppression. Il me dit que l'acces est "denied" (alors que sous windows, je peux le supprimer à la main).
Voici mon code: (où Wmp est une instance de mon activeX)
Pour visualiser la video:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Wmp.URL = MyProj.GetProjectPath() + "\\Default Medias\\" + strTemp.Substring(iStart); Wmp.windowlessVideo = true; picDefaultMedia.Visible = false; QTControl.Visible = false; picDefaultMedia.Visible = false; StartFormFlashPlayer.Visible = false;
Pour arreter de la visualiser et supprimer le fichier:
C'est un probleme que j'ai aussi eu lorsque j'utilisait la meme facon de faire pour afficher des gif dans un PictureBox mais j'ai trouvé le moyen de feinter en utilisant un FileStream puis en le fermant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Wmp.Ctlcontrols.stop(); Wmp.close(); System.IO.File.Delete(MyProj.GetProjectPath() + "\\Default Medias\\" + strTemp.Substring(iStart));
Mais là, visiblement, j'ai pas le choix, je ne peux pas utilser de Stream...
Quelqu'un a une idée pour forcer l'activeX a relacher le fichier ou bien une façon de supprimer un fichier de force?
Merci pour votre aide!!!
Partager