Bonjour, j'ai fait un petit programme pour les les fichiers Wav.
En faisant un double clic sur un fichier wav, mon programme s'ouvre et lit le fichier automatiquement.
J'ai fait en sorte qu'un seul programme ne soit ouvert en cochant Instance unique dans VS2019.
Le problème est que si le programme est déjà ouvert, lorsque je fais un double clic sur un second fichier Wav, l'icône de mon programme clignote en jaune et c'est tout.
Pour récupérer le fichier cliqué je le prends comme ça :
If Command() <> "" Then
Call Module1.Chargement(System.IO.Path.GetFullPath(Command().Replace(Chr(34), "")))
End If
J'aimerais bien que le programme exécute le second son et ferme la première fenêtre.
Merci
Bonjour, ça je sais le faire. C'est la double instance que je ne sais pas gérer. Je voudrais que la seconde instance tue la première pour n'avoir qu'une seule fenêtre.
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 2 juil. 2019 à 14:46
dans ce programme tu trouveras ce code qui permet de fermer la fenêtre ouverte
Private Sub cmdclose_Click(sender As System.Object, e As System.EventArgs) Handles cmdclose.Click
For Each p As Process In Process.GetProcesses
If p.MainWindowTitle.Contains(nomappli) Then
p.CloseMainWindow()
End If
Next
End Sub
Ca ne marche pas : cmdclose.Click nexiste pas.
Et puis, je ne pense pas que ce soit cela que je veux. La fenêtre doit se fermer toute seule.
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 Modifié le 2 juil. 2019 à 16:55
c'est normal c'est le nom du bouton!!!!!!!!!!!!!
tu te sers simplement de cela:
For Each p As Process In Process.GetProcesses
If p.MainWindowTitle.Contains("nomappli") Then 'mettre le nom de l'appli à fermer à la place de nomappli
p.CloseMainWindow()
End If
Next
mais je ne comprends pas ta façon de procéder. il serait si simple d'arrêter le son avant de lancer le nouveau fichier!
Voici un exemple de programmation de son wave, mp3 etc. :
Je réexplique : Je fait un double clic sur un fichier Wav. Mon programme s'ouvre et lit le son. La fenêtre reste ouverte. Je fait un double clic sur un second fichier wav. Mon programme s'ouvre à nouveau et lit le son (donc deux fenêtres ouvertes). Mais je voudrais que le second programme ferme le premier pour ne pas avoir 36 fenêtres à fermer.
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 Modifié le 2 juil. 2019 à 17:52
Bonjour
J'ai fait cela mais ça ne marche pas
Déjà pour que ça marche, il faut que tu autorises plusieurs instances de ton logiciel, car c'est la 2eme instance qui va tuer la première.
Ensuite il faut le placer au bon endroit, c'est à dire au point d'entrée de ton logiciel dans la Sub Main.
Enfin selon l'état de ta première instance, la fermer proprement peut s'avérer impossible, il faut alors tuer le processus
p.Kill()
Mais cela veut dire qu'à chaque double click tu vas ouvrir une nouvelle instance qui tue la précédente
Ce sera peut-être un peu plus long que de faire en sorte que ton logiciel coupe l'herbe sous le pied à Windows, en interceptant tous les doubles clicks et en traitant le cas qui t'intéresse. Ça s'appelle un hook, ici un discussion qui en parle en C# https://stackoverflow.com/questions/12851010/detect-double-click-globally-in-windows et là de quoi traduire en ligne https://www.qwant.com/?q=c%23+to+vb&t=web
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 2 juil. 2019 à 17:53
PS et ça ne marche pas quand tu lances le logiciel par Visual Studio, que tu sois en mode Debug ou Release, carl'exe est lancé dans un Host, donc n'apparait pas dans les process
2 juil. 2019 à 14:28
2 juil. 2019 à 14:46
https://codes-sources.commentcamarche.net/source/102162-controler-une-fenetre-ouverte
dans ce programme tu trouveras ce code qui permet de fermer la fenêtre ouverte
Modifié le 2 juil. 2019 à 16:47
Et puis, je ne pense pas que ce soit cela que je veux. La fenêtre doit se fermer toute seule.
Modifié le 2 juil. 2019 à 16:55
tu te sers simplement de cela:
mais je ne comprends pas ta façon de procéder. il serait si simple d'arrêter le son avant de lancer le nouveau fichier!
Voici un exemple de programmation de son wave, mp3 etc. :
https://codes-sources.commentcamarche.net/source/49973-gadget-diaporama
@+ Le Pivert
2 juil. 2019 à 17:07
Je réexplique : Je fait un double clic sur un fichier Wav. Mon programme s'ouvre et lit le son. La fenêtre reste ouverte. Je fait un double clic sur un second fichier wav. Mon programme s'ouvre à nouveau et lit le son (donc deux fenêtres ouvertes). Mais je voudrais que le second programme ferme le premier pour ne pas avoir 36 fenêtres à fermer.
Media Player Classic HD fait de la même manière.