Bonjour à tous,
Ma question c'est comment pouvoir exécuter un programme externe (par exemple : word, vclmediaplayer...) avec delphi à condition que la fenêtre d’exécution soit intégrée dans delphi ?
Bonjour à tous,
Ma question c'est comment pouvoir exécuter un programme externe (par exemple : word, vclmediaplayer...) avec delphi à condition que la fenêtre d’exécution soit intégrée dans delphi ?
Bonjour,
Si c'est toujours pour ton projet de vidéo ... regarde, sur cette page je t'y avais déjà répondu d'ailleurs cette solution pourrait aussi convenir à ta question suivante (récupérer une image d'une vidéo)
Cordialement,
@+
Bonjour, et merci pour la réponse.
J'ai regarder le lien, c'est vrai que ça résout le premier problème malgré que j'aurai aimé me passer de Activex, par contre ça résout pas le problème "capture image sur vidéo".
au passage comment connaitre la fin de lecture dans "windows media player"![]()
Pour Word pas de chance, c'est justement un énorme Objet OLE !
Je te déconseille de jouer avec SetParent de l'API Windows pour intégrer la fenêtre Word dans Delphi, cela risque de le faire bien planter
Tu peux voir si chez TMS/DevExpress il n'y a pas un lecteur, ceux pour Excel sont très poussés
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Le TMediaPlayer permet de se passer d'ActiveX
et pour la capture j'ai 2 solutions.
une première qui consiste simplement à copier ce qui est affiché à l'écran:
et une deuxième qui utilise un programme tierce en ligne de commande nommé FFMPEG.exe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 procedure TForm21.Button1Click(Sender: TObject); var Bmp: TBitmap; aDC: hdc; begin aDC := GetDc( MediaPlayer1.Display.Handle); Bmp := TBitmap.Create; try Bmp.SetSize(MediaPlayer1.Display.Width, MediaPlayer1.Display.Height); BitBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, aDc, 0, 0, SRCCOPY); Bmp.SaveToFile('Test.bmp'); finally ReleaseDc(MediaPlayer1.Display.Handle, aDc); Bmp.Free; end; end;
ffmpeg.exe -y -ss 00:53:47.389 -i "c:\Chemin et\Nom Video.mp4" -vframes 1 "c:\chemin et\Nom Image.jpg"
Extrait une image JPEG à partir de 53 minutes 47 Secondes et 389 Millièmes du fichier "Video.mp4"
-y = écrase le fichier de sortie si il existe déjà
-ss = Offset de début
-i = fichier source
-vframes = nombre d'images à extraire
et pour finir le fichier de sortie
la deuxième solution donne de meilleurs résultats
Cordialement,
@+
Bonjour,
@cirec,
pour la 1er et solution, je suis obligé d’exécuter dabord la video pour faire une capture ecran je ne sais pas si c'est possible de le faire en arrière plan et à une période bien précise de la vidéo.
pour la 2eme solution, j'ai telechargé le zip du lien que vous m'avez donnée et je trouve pas "ffmpeg.exe".
il suffisait de cliquer sur l'os voulue ici Windows
qui te mène sur la page de téléchargement de FFMPEG
EDIT: voici le lien direct de téléchargement de l'archive en 64bit
voici le lien direct de téléchargement de l'archive en 32bit
Cordialement,
@+
Partager