Condividi:        

Come Chiudere un Media Player

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Come Chiudere un Media Player

Postdi A.Maurizio » 25/12/13 05:19

Per Prima Cosa Vorrei fare i Miei Più Sinceri Auguri di Buone Feste a tutti e un Felice Anno Nuovo .
Mi Chiamo Maurizio ; Vi Scrivo in quanto Vorrei Riuscire a Risolvere questo problema in Excel .
il Mio Problema e Questo : Nella mia Cartella di Lavoro ho Inserito un Filmato ( AVI ) e il Codice che ho inserito in un Modulo e il Seguente :
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10

Sub Apri_Video()
Dim X As Long
X = ShellExecute(hWnd, "Open", _
ThisWorkbook.Path & "\Oggetti\Animazione.Avi", vbNullString, vbNullString, SW_NORMAL)
End Sub

Ora il Mio problema e questo : Tutto Ciò li per li ; Funziona benissimo , però quello che vorrei sapere e questo : c'è un sistema per riuscire a far si che quando il filmato Termina la sua Esecuzione ; tale oggetto si chiuda del tutto da sé , senza che Io tutte le volte debba Intervenire Manualmente !.
Vi Posso garantire che le ho provate Tutte , come ad esempio usare " End ; Close , Stop " ecc...! ma nulla da fare .
Vi Ringrazio sin da Ora per tutto l'aiuto che riuscirete a Drmi Sinceri saluti da A.Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Sponsor
 

Re: Come Chiudere un Media Player

Postdi Flash30005 » 25/12/13 11:54

Chiudere un'applicazione (processo) è possibile tramite comando
nel tuo caso vorresti chiudere WMP quando finisce un brano musicale o video pertanto si deve conoscere la durata del brano e ho pensato di imbastire velocemente e sicuramente migliorabile una macro di questo tipo
Codice: Seleziona tutto
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 Public Const WM_CLOSE = &H10
 Public Perc
 Public FileN As String, Durata
 
 Public Function CloseApplication(ByVal sAppCaption As String) As Boolean
 Dim lHwnd As Long
 Dim lRetVal As Long
 lHwnd = FindWindow(vbNullString, sAppCaption)
 If lHwnd <> 0 Then
 lRetVal = PostMessage(lHwnd, WM_CLOSE, 0&, 0&)
 End If
 End Function

Sub Avvio()
Perc = ThisWorkbook.Path & "\"  'percorso del file
FileN = "File.mp3" 'nome del file
DurataM
Suona
End Sub
Sub Chiudi()
 sAppCaption = "Windows Media Player"
 Run CloseApplication(sAppCaption)
 End Sub
Private Sub Suona()
Shell ("C:\Programmi\Windows Media Player\wmplayer.exe " & Perc & FileN & ""), 4
Application.OnTime Now + TimeValue(Durata), "Chiudi"
End Sub
Private Sub DurataM()
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Perc)
For Each StrFileName In objFolder.Items
If StrFileName = FileN Then
Durata = objFolder.GetDetailsOf(StrFileName, 27)
End If
Next
End Sub


Avviando la macro "Avvio" che a sua volta, richiama DurataM determiniamo la durata del brano
si avvia WMP e alla fine viene richiamata la macro Chiudi.

prova e fai sapere

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 26/12/13 17:24

Ciao Flash ; Mi Dispiace ma questa volta Il Tuo Consiglio non Funziona come Vorrei .
in quanto: e vero che Il Tuo Listato Funziona alla perfezione cosi co lo hai scritto tu ! ci mancherebbe altro ?
Ma In questo Caso Sono Costretto a Dover Trascrivere il Percorso esatto per dover andare a prelevare Tale Filmato ; tutto ciò comporta il Fatto , che fin tanto che il mio Programma lo Tengo sul mio Pc , esso Funziona alla Perfezione ; ma se tento di Spostarlo su di un altro ; oppure anche solo Depositarlo all'interno di un altra cartella ; esso perde lo stato Attivo .
In quanto cambia percorso !
Però proverò a lavorarci un pochino sopra e poi ti farò sapere , Nel Frattempo Goditi le Festività Natalizie Buon Anno a Tutti voi Sinceri saluti da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Re: Come Chiudere un Media Player

Postdi Flash30005 » 26/12/13 18:41

Mi sembra che non fosse questo il tuo problema (percorso) ma chiudere WMP e il programma lo fa.
Per il percorso è sufficiente che il brano o video sia nella stessa cartella del file di Excel che contiene la macro (che è lo stesso da te riportato)
A.Maurizio ha scritto:ThisWorkbook.Path &


E' chiaro che se cambi il percorso devi sempre indicarlo
altrimenti bisognerebbe collegare un'interfaccia tra il Pc e la tua mente :D

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Come Chiudere un Media Player

Postdi Anthony47 » 27/12/13 18:51

Io suggerirei di cambiare approccio e di usare WMP tramite il controllo (activex) WindowsMediaPlayer che inserirai sul tuo foglio; volendo lo tieni normalmente nascosto impostando la proprieta' Visible su False (in fase di progettazione, o con l' istruzione WindowsMediaPlayer2.Visible = False).
Per avviare il filmato ovviamente prima lo renderai visibile e poi lo "carichi" col video che ti serve; es:
Codice: Seleziona tutto
WindowsMediaPlayer2.Visible = True
WindowsMediaPlayer2.uiMode = "full"
WindowsMediaPlayer2.URL = "C:\Users\User1\Documents\MyMovies\MVI_6250.AVI"   '<<< Il tuo filmato

Se vuoi nascondere il controllo a fine filmato dovrai usare una macro di PlayStateChange di questo tipo:
Codice: Seleziona tutto
Private Sub WindowsMediaPlayer2_PlayStateChange(ByVal NewState As Long)
If NewState = 8 Then   '8 = wmppsMediaEnded
    WindowsMediaPlayer2.Visible = False
End If
End Sub
In questi esempi ho immaginato che il controllo inserito sul foglio si chiami WindowsMediaPlayer2; va adattato col nome che avra' il tuo controllo.
Questa e' una semplificazione di quanto finora realizzato, mentre non so valutare il tutto alla luce dell' ultimo post di Maurizio, perche' anche io non ho capito l' obiezione.
Una discussione che verte sulla gestione di WindowsMediaPlayer e' questa: viewtopic.php?f=26&t=98934

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 28/12/13 12:23

Grazie a Tutti Voi : A Partire da Flash , Anthony ecc..! dei vostri Proverbiali Suggerimenti sul Caso .
Io non volevo e non Voglio Obiettare nulla a Nessuno sul Vostro Operato ; in quanto Io ho solo Tutto da imparare da Persone come Voi .
Dicevo Solo che per quello che riguardava il Suggerimento di Flash , per il mio Modo di Vedere questo Tipo di Programma , non mi Piaceva il fatto d'aver un Codice che Indicava una Funzione Assoluta , in quanto ho L'impellenza di Dovermi trasportare lo stesso programma su due PC diversi ; per qui questa forma di codice che Indicava l'intero percorso non mi Piaceva molto , Tutto qui !.
Non intendevo Offendere Nessuno ; ne tanto meno Dire che il lavoro di Flash non fosse Giusto o Errato .
Spero di essere stato abbastanza chiaro .
Comunque ancora una volta vi Auguro un Buon anno Nuovo a Tutti a Voi e alle Vostre famiglie da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Re: Come Chiudere un Media Player

Postdi Flash30005 » 28/12/13 12:47

Non ci sentiamo affatto offesi,
ma quello che non si comprende è la tua difficoltà.
Per far suonare (o vedere) un brano (o un video), su un altro Pc, quest'ultimo deve essere "trasportato" sul Pc di destinazione.
Le macro che ti sono state consigliate non obbligano l'utente a cambiare il percorso ogni volta (all'interno della macro) ma è sufficiente che i due file (Excel e il brano o video) siano nella stessa cartella di qualunque Pc e in qualsiasi percorso.
Più semplice di così...?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 07/01/14 10:45

Ciao a tutti : Forse con un Pochino di vacanza mi a dato dei buoni spunti per formulare tale Domanda e Farvi capire meglio il Mio problema inerente alla Visualizzazione di un File Video ; o un o L'ascolto di un File Audio .
Allora Partiamo dal presupposto che Io nel Mio Foglio di Excel Inserisca soltanto due Pulsanti .
Uno Chiamato Musica ; E l'altro chiamato Video .
Ora in Modulo 1 , Scriverò questo tipo di codice che il Tasto Musica , Chiamerà questa procedura :

Private Declare Function Play Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Public Const SW_NORMAL = 1
Sub MioSuono()
Dim Ret As Long
Dim file As String
file = ThisWorkbook.Path & ("\Oggetti\gong.wav")
Ret = Play(file, SND_ASYNC)
End Sub

Dopo di chè : in Modulo 2 , Scriverò questo tipo di codice che il Tasto Video , Chiamerà questa procedura :

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10

Sub MioVideo()
Dim X As Long
X = ShellExecute(hWnd, "Open", _
ThisWorkbook.Path & "\Oggetti\Animazione.Avi", vbNullString, vbNullString, SW_NORMAL)
End Sub

###########################################################################################################
Ora tutto questo , Stà a Significare che io non ho Nessun Oggetto Media Player a Disposizione per Visualizzare Tele Filmato o Ascoltare dei Brani che nel mio Caso sono già all'interno della mia Cartella di lavoro .
Ecco perchè Sfrutto le Api di Windows per Richiamare tali procedure .
Ma Media Player e l'oggetto di Default del mio Sistema Operativo che ho Utilizzato per visualizzare tutti i Filmati che intendo Visualizzare , al di la° che Io stia lavorando con il mio programma o meno .
E per Concludere ; Desidero dire ancora : Che mentre con il Modulo 1 ! Finito di Ascoltare il brano ; Esso si chiude Automaticamente .
Cio' non Avviene quando richiamo la procedura del Modulo 2 .
Ecco il perchè o Chiesto il Vostro Aiuto in merito ; e con questo , spero di essermi documentato il più Possibile , Grazie ancora dei Votri provverbiali Suggerimenti , Sinceri saluti da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Re: Come Chiudere un Media Player

Postdi Anthony47 » 07/01/14 21:13

La WINMM.DLL non apre nessuna finestra, manda solo in riproduzione un suono; la shell32.dll esegue invece l' applicazione standard associata all' oggetto che gli passi come parametro. Trattandosi di un avi lancera' mediaplayer che visualizzera' il filmato nella finestra di mediaplayer; fosse stato un file "doc" (per dire) avrebbe mandato in esecuzione Word al cui interno avrebbe aperto il documento. Lo stesso comando non e' disegnato per chiudere l' applicazione...

I miei "gadget natalizi" includono spesso l' uso di Windows Media Player per riprodurre anche solo una musica; vedi ad esempio il gadget di quest' anno, il cui link e' citato qui: viewtopic.php?f=26&t=100819
Il file e' liberamente scaricabile, le macro accessibili; all' interno c'e', in due posizioni, il codice che uso per chiudere mediaplayer (vedi blocco con commento "chiudi Windows MediaPlayer " nel modulo Wip_Tree.

Rimane da sapere "quando" si puo' chiudere mediaplayer, cioe' alla fine della riproduzione: io (nel gadget natalizio) so quanto dura il mio brano e chiudo mediaplayer 77 secondi dopo il presunto inizio; se tu hai una durata fissa e nota allora puoi usare un approccio analogo. Se invece non la sai, allora il codice di Flash gia' contiene una Private Sub DurataM che, se non sbaglio, legge la durata del brano e pianifica l' esecuzione della Sub Chiudi che dovrebbe chiudere l' applicazione mediaplayer.

Cio' detto, continuo a chiedermi perche' non vuoi usare il controllo (activex) WindowsMediaPlayer, che si occuperebbe di visualizzare il filmato all' interno della sua finestra e che puoi chiudere agevolmente usando l' evento WindowsMediaPlayer_PlayStateChange associato al termine della riproduzione (come suggerito qui: viewtopic.php?f=26&t=100847#p582589)

A meno che in realta' tu non abbia gia' risolto, e io non l' ho capito, con le api di sistema.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 21/02/14 08:41

Grazie ancora di Tutto Cuore veramente , anche sé con un Pochino di Ritardo .
Cio che mi avete offerto Rispecchia tutto cò che desideravo fare Io da tempo ; era solo che per me non è tanto il non sapere come fare a farequesto o quella casa ,ma in che modo quale codice e Necessario per Riprodurre tale Procedura ecc,,! Comunque sia non Smetterò mai di Ripetere che siete persone Favolose a dir Poco .
Grazie ancora di tutto e del Vostro Materiale che mi avete offerto , Sicuramente li Custodirò , in un posto solo a me accessibile ; Sinceri saluti da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 24/02/14 16:38

Ciao Anthony47 Sono Maurizio , Ti Scrivo anche sé Capisco di Essere un Pochino Stancante nei Tuoi Confronti su questo Tema ; ma e giusto che tu lo sappia .
Allora Per prima cosa Ti Ringrazio Nuovamente per Avermi Fornito L'indirizzo internet dove andare a Scaricare i Tuoi Programmi inerente alla Chiusura di Media Player .
Ora ci Tengo a precisare che sono a dir poco Stupendi , Io non saprò mai se riuscirò mai a fare una cosa di Questo Genere ; e dire che con voi , di passi avanti ne ho già fatti Parecchi .
Però il Punto e questo : Ora non so sé può Dipendere dal Fatto che Io uso come Sistema Operativo Windows 8.1 e Office 2007 .
Però nei tuoi programmi per ovviare alle Ripetute Voci che mi davano Errore di qua ed Errore di là ; ho Dovuto Aggiungere la Sintassi ( On Error Resume Next ) ; ma questo e Ancora il meno .
Il Punto e che : I tuoi progetti sia pur Bellissimi e ben fatti ; mi Lasciano il cosi detto Amaro in Bocca , E questo da parte mia Lunge dal vuol Essere una Critica nei Tuoi confronti .
Ma te lo dico semplicemente in quanto Vorrei capire bene il tutto ; per qui ti prego di non offenderti .
Detto questo : Il problema e che anche nei tuoi Programmi hai il Problema che Media Player alla fine di ogni sua Funzione Rimane li ad aspettare che tu vada a chiudere la sua Finestra , e non lo fa in automatico cosi come e venuto .
Mentre sé tu avessi voglia di provare il Mio Codice che ti Avevo mandato all'inizio di Questa Richiesta , Ti saresti subito Accorto che : Per quanto riguardavano i Suoni ; Canzoni ecc...! Media Player si Apriva e si Chiudeva da Codice .
Mentre il Problema era nel File che Visualizza il Video Avi ecc...! .
Ora mi chiedo perché di Tutto questo quale Ragione di fon c'è in tutto questo .
Grazie ancora di Tutto , e scusami sé ti faccio venire la barba , Sinceri saluti da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39

Re: Come Chiudere un Media Player

Postdi Flash30005 » 25/02/14 01:17

Forse il problema sta proprio nel So (Windows 8) che non ho
ma hai provato la macro che ti postai in data 25/12/13 ore 11:54 ?
se si fai sapere che risultati hai avuto

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Come Chiudere un Media Player

Postdi Anthony47 » 25/02/14 02:53

Ciao Maurizio (non perdere il messaggio di Flash prima di questo).
Ti Scrivo anche sé Capisco di Essere un Pochino Stancante nei Tuoi Confronti su questo Tema
Stai tranquillo che non mi faccio stressare...

I gadget natalizi a cui fai riferimento da un paio di anni li collaudo con Xp e Win7, XL2003 e 2010. Probabilmente c' e' qualcosa a livello di Win8, che pero' non ho.
Comunque a fronte di un errore la soluzione non e' "On Error Resume Next" (che va usato in fasi molto limitate).

Quanto a mediaplayer, esaminando solo l' ultimo gadget (xmas2013_v1.xls; ma quello del 2012 era certamente simile), il processo viene "ucciso" dal comando TASKKILL (almeno in 4 posti diversi); e' possibile che Win8 abbia una sintassi diversa, ma non sono in gado di controllarlo.
Quanto alle possibili alternative, purtroppo non posso utilizzare il tuo codice perche' il mio audio e' embedded nel file excel, mentre la funzione ShellExecute come pure sndPlaySoundA presuppongono l' esistenza di un file esterno autonomo; per lo stesso motivo non posso usare nemmeno il suggerimento che avevo dato a te (usare il controllo activex WindowsMediaPlayer), che invece continuo a pensare dovrebbe risolvere la tua ambascia.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Chiudere un Media Player

Postdi A.Maurizio » 27/02/14 16:02

Grazie ancora una Volta di tutto Cuore Anthony47 - Ciò che mi hai scritto e pienamente vero in quanto ho incominciato anche Io a Dubitare di molto , il Sistema Operativo Win 8 .
In quanto Tempo fa Prima ancora di Conoscere voi , mi ero Imbarcato in un Fatto molto Strano , ma analogo per certi Versi a Questo , quando ero riuscito a Ricreare di Sana pianta ; un mio Vecchi progetto che avevo fatto hanni prima con VB6 sulla Tombola Parlante .
Dove oltre a Dare gli ambi ; Ter ecc...! diceva anche a Voce i Vari numeri Estratti .
Tutto ciò dicevo Ero riuscito a Riprodurre il Tutto anche Usando Excel 2003 ; ma quando sono poi passato a Office 2007 sono cominciati i Guai in quanto Dall'ora non sono più riuscito a udire un solo numero in Italiano .
Le ho provate Tutte , ho Cambiato anche le Impostazioni della lingua di Office ecc..! ma non c'è stato nulla da Fare ; tanto che poi a forza di fare mi sono dovuto Arrendere , Tenendomelo cosi come l'avevo Costruito .
E da li che mi sono accorto che forese non solo era dovuto dal Fatto che Poteva essere colpa del Nuovo sistema Operativo ma anche di Office 2007 .
Ora però Voglio provare a Comperare anche Office 2010 , e riprovare da li ; se per caso con quello riesco a risolvere tali problemi .
Comunque sia anche questa Volta ti Ringrazio Infinitamente per la tua proverbiale gentilezza e pazienza nel Seguirmi nelle mie imprese ; E un sincero grazie anche a Tutti gli altri tuoi Colleghi ; Saluti Sinceri da A. Maurizio
A.Maurizio
Utente Senior
 
Post: 116
Iscritto il: 02/08/13 15:39


Torna a Applicazioni Office Windows


Topic correlati a "Come Chiudere un Media Player":


Chi c’è in linea

Visitano il forum: Nessuno e 95 ospiti