Afficher un msgbox au premier plan
Résolu/Fermé
A voir également:
- Afficher un msgbox au premier plan
- Arrière plan - Guide
- Logiciel plan maison gratuit - Télécharger - Architecture & Déco
- Plan d'un rapport de stage - Guide
- Logiciel plan maison gratuit facile - Guide
18 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 janv. 2015 à 21:25
7 janv. 2015 à 21:25
Oui c'est possible:
Form1
Form2
Form1
My.Computer.Audio.Play("C:\Windows\Media\Alarm01.wav", AudioPlayMode.BackgroundLoop) 'joue en boucle Form2.ShowDialog()
Form2
'Arrete la lecture du son My.Computer.Audio.Stop() Me.Hide()
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
6 janv. 2015 à 11:08
6 janv. 2015 à 11:08
Bonjour,
Pourquoi ne pas jouer un son à la place d'un MsgBox, comme ceci:
le chemin du fichier wave est pour Windows 8.1, a vérifier sur le pc
Pourquoi ne pas jouer un son à la place d'un MsgBox, comme ceci:
My.Computer.Audio.Play("C:\Windows\Media\Alarm01.wav", AudioPlayMode.WaitToComplete) 'joue complétement, ne s'arrête qu'à la fin du morceau
le chemin du fichier wave est pour Windows 8.1, a vérifier sur le pc
MrWhitediamond
Messages postés
31
Date d'inscription
mardi 6 janvier 2015
Statut
Membre
Dernière intervention
21 novembre 2015
1
Modifié par MrWhitediamond le 6/01/2015 à 13:21
Modifié par MrWhitediamond le 6/01/2015 à 13:21
Pour créer un MsgBox au premier plan tu dois utiliser une des values suivantes :
16 --> OK
17 --> OK + CANCEL
18 --> ABORT + RETRY + IGNORE
19 --> YES + NO + CANCEL
20 --> YES + NO
21 --> RETRY + CANCEL
La fenêtre s'affichera en CRITICAL, ce qui signifie en 1re plan mais aussi avec le son windows.
Exemple de code en vbscript :
x= MsgBox ("Le Texte de la fenêtre",20,"Le Titre de la fenêtre")
if x = 6 then //si l'utilisateur clique sur OUI
.....
elseif x = 7 then
.....
end if
16 --> OK
17 --> OK + CANCEL
18 --> ABORT + RETRY + IGNORE
19 --> YES + NO + CANCEL
20 --> YES + NO
21 --> RETRY + CANCEL
La fenêtre s'affichera en CRITICAL, ce qui signifie en 1re plan mais aussi avec le son windows.
Exemple de code en vbscript :
x= MsgBox ("Le Texte de la fenêtre",20,"Le Titre de la fenêtre")
if x = 6 then //si l'utilisateur clique sur OUI
.....
elseif x = 7 then
.....
end if
Bonjour et merci de vos réponses,
pour répondre à cs_Le Pivert, en effet ta méthode marche et c'est donc celle que je vais utiliser si je ne trouve pas d'autre solution mais le problème est que je n'ai toujours le son de mon pc allumé :) (à moins qu'il existe une commande pour allumer automatique le son)
pour répondre à MrWhitediamond, cela ne résous pas mon problème car tu as fais comme mon code mais en changent le bouton OK en boutons oui et non mais cela n'affiche toujours pas la fenetre en premier plan. par contre tu as parler de s'afficher en critical, je ne sais pas ce que tu voulais dire par la mais cela m'as rappeler qu'il y a un paramètre permettant d'afficher la fenêtre avec un point d'exclamation comme si il y avais une erreur ce qui a peut-être pour effet de l'afficher au premier plan. je n'ai pas pu tester car je ne me rappelle plus de ce paramètre donc si quelqu'un le connait, je pourrais essayer.
merci encore de chercher à résoudre mon problème.
pour répondre à cs_Le Pivert, en effet ta méthode marche et c'est donc celle que je vais utiliser si je ne trouve pas d'autre solution mais le problème est que je n'ai toujours le son de mon pc allumé :) (à moins qu'il existe une commande pour allumer automatique le son)
pour répondre à MrWhitediamond, cela ne résous pas mon problème car tu as fais comme mon code mais en changent le bouton OK en boutons oui et non mais cela n'affiche toujours pas la fenetre en premier plan. par contre tu as parler de s'afficher en critical, je ne sais pas ce que tu voulais dire par la mais cela m'as rappeler qu'il y a un paramètre permettant d'afficher la fenêtre avec un point d'exclamation comme si il y avais une erreur ce qui a peut-être pour effet de l'afficher au premier plan. je n'ai pas pu tester car je ne me rappelle plus de ce paramètre donc si quelqu'un le connait, je pourrais essayer.
merci encore de chercher à résoudre mon problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
6 janv. 2015 à 21:34
6 janv. 2015 à 21:34
Voila un exemple
tu mets un point derrière MessageBoxIcon. et tu auras un menu contextuel avec les autres options
MessageBox.Show("Opération annulée par l'utilisateur!", "Ouverture", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
tu mets un point derrière MessageBoxIcon. et tu auras un menu contextuel avec les autres options
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 janv. 2015 à 08:08
7 janv. 2015 à 08:08
Je m'en doutais!
Dans l'immédiat je te propose une 2 ème solution:
Faire ton MsgBox perso avec un form
Tu vas dans projet- Ajouter un Formulaire Windows.
Normalement il va se nommer Form2, sinon tu adaptes
Dans le form1 à la place de l'appel de ton MsgBox tu mets ceci:
Et dans ton Form2 tu ajoute un Label et un button avec ce code:
Voilà, bonne programmation
Dans l'immédiat je te propose une 2 ème solution:
Faire ton MsgBox perso avec un form
Tu vas dans projet- Ajouter un Formulaire Windows.
Normalement il va se nommer Form2, sinon tu adaptes
Dans le form1 à la place de l'appel de ton MsgBox tu mets ceci:
Form2.ShowDialog()
Et dans ton Form2 tu ajoute un Label et un button avec ce code:
Public Class Form2 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Me.Hide() End Sub Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.Text = "MsgBox perso" Label1.Text = "Ceci est un message" & Environment.NewLine & "c'est la 2ème ligne" & Environment.NewLine & "c'est la 3ème ligne" Label1.AutoSize = True TopMost = True 'Formulaire s'affiche au dessus des autres ControlBox = False Button1.Text = "Fermer" End Sub End Class
Voilà, bonne programmation
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 janv. 2015 à 08:53
7 janv. 2015 à 08:53
Pour le son, essaie les fichiers commençant par Windows - comme ceci:
Windows - Alarme batterie
Voir si ils fonctionnent sans le son
Windows - Alarme batterie
Voir si ils fonctionnent sans le son
Ta méthode avec la form2 marche parfaitement !!! merci infiniment !
Je n'ai plus qu'a adapté la fenêtre comme je veux.
Pour le son j'ai essayer de mettre la sonnerie "Windows - Alarme batterie.wav" mais il plante et dit qu'il ne trouve pas le fichier alors qu'avec "Alarm01.wav", tout se passe bien !
peut-être qu'il ne peut pas lire les fichiers dont le nom contient des espaces...
Encore merci !
Je n'ai plus qu'a adapté la fenêtre comme je veux.
Pour le son j'ai essayer de mettre la sonnerie "Windows - Alarme batterie.wav" mais il plante et dit qu'il ne trouve pas le fichier alors qu'avec "Alarm01.wav", tout se passe bien !
peut-être qu'il ne peut pas lire les fichiers dont le nom contient des espaces...
Encore merci !
Bonjour,
j'aimerais te demander une aide supplémentaire pour mon projet :
ton idée de rajouté une sonnerie m'a intéresser et je vais donc en mettre une en plus du message. j'aimerais pouvoir avoir le message ouvert en meme temps qu'il y a la sonnerie et que si on ferme le message avant que la sonnerie soit terminer alors on éteint la sonnerie au milieu. Est-ce possible ?
j'aimerais te demander une aide supplémentaire pour mon projet :
ton idée de rajouté une sonnerie m'a intéresser et je vais donc en mettre une en plus du message. j'aimerais pouvoir avoir le message ouvert en meme temps qu'il y a la sonnerie et que si on ferme le message avant que la sonnerie soit terminer alors on éteint la sonnerie au milieu. Est-ce possible ?
Bonjour,
Encore une chose : peut on, soit allumer automatiquement le son du pc, soit vérifier si le son du pc est allumé ?
Encore une chose : peut on, soit allumer automatiquement le son du pc, soit vérifier si le son du pc est allumé ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
8 janv. 2015 à 07:51
8 janv. 2015 à 07:51
Non je ne vois pas, édite un nouveau post tu auras plus de réponses !
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
8 janv. 2015 à 14:42
8 janv. 2015 à 14:42
Tu as de la chance, j'ai trouvé ce que tu cherches!!!
Tu mets 3 buttons avec ce code:
Tu cliques sur Muet un seconde fois pour remettre le son. à toi de l'adapter dans ton projet.
Tu mets 3 buttons avec ce code:
Option Strict On Imports System.Runtime.InteropServices Public Class Form1 <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function Const WM_APPCOMMAND As UInteger = &H319 Const APPCOMMAND_VOLUME_UP As UInteger = &HA Const APPCOMMAND_VOLUME_DOWN As UInteger = &H9 Const APPCOMMAND_VOLUME_MUTE As UInteger = &H8 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Button1.Text = "Monter" Button2.Text = "Baisser" Button3.Text = "Muet" End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr)) End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_DOWN * &H10000, IntPtr)) End Sub Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H200EB0, IntPtr), CType(APPCOMMAND_VOLUME_MUTE * &H10000, IntPtr)) End Sub End Class
Tu cliques sur Muet un seconde fois pour remettre le son. à toi de l'adapter dans ton projet.
Bonjour,
as-tu tester ce code ?
parce que moi lorsque je me les lignes
il souligne tous les élements de ma form1 et si je ne les met pas il souligne les lignes
et dans tous les cas il ne peut pas compiler
as-tu tester ce code ?
parce que moi lorsque je me les lignes
Option Strict On Imports System.Runtime.InteropServices
il souligne tous les élements de ma form1 et si je ne les met pas il souligne les lignes
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function
et dans tous les cas il ne peut pas compiler
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 janv. 2015 à 08:01
9 janv. 2015 à 08:01
Bien sur que je l'ai testé!
voilà, essaie le:
http://www.cjoint.com/data3/3AjiiXwTTly.htm
voilà, essaie le:
http://www.cjoint.com/data3/3AjiiXwTTly.htm
Le code que vous m'avez donner marche bien mais j'ai compris ce qu'il ne va pas :
j'ai les variables h,m et s qui correspondes aux heures, minutes et secondes de mon compte à rebour or ces informations, je les récupère dans des textbox. normalement, il fait bien la conversion string->integer mais avec les lignes
il ne veut plus faire la conversion d'un type a un autre. Avez-vous une idée ?
j'ai les variables h,m et s qui correspondes aux heures, minutes et secondes de mon compte à rebour or ces informations, je les récupère dans des textbox. normalement, il fait bien la conversion string->integer mais avec les lignes
Option Strict On Imports System.Runtime.InteropServices
il ne veut plus faire la conversion d'un type a un autre. Avez-vous une idée ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 janv. 2015 à 18:13
9 janv. 2015 à 18:13
Normalement tu as tes variables qui affichent l'erreur en rouge, il suffit de faire un clic droit dessus pour la corriger. Sinon le plus simple c'est de supprimer cette ligne
Option Strict On
Je mets Option Strict On pour coder proprement, c'est une bonne habitude à prendre
Option Strict On
Je mets Option Strict On pour coder proprement, c'est une bonne habitude à prendre
J'ai trouvé ! Il fallait utiliser la fonction CInt() pour convertir ma variable.
Donc le code que tu m'a donné marche bien mais j'ai un autre problème, c'est que si le son est allumé et que je fait mute, ça éteint le son. Deuxièmement, je peux augmenter et diminuer le son mais je ne peut pas choisir une valeur fixe or moi j'aimerais allumer le son et fixer sa valeur de façon a que ce soit toujours la même et les fonctions que tu m'a donner ne me permettent pas de le faire.
connait tu un moyen de fixer le son a une certaine valeur ou de connaitre sa valeur actuelle pour augmenter ou diminuer de ce qu'il faut ?
Donc le code que tu m'a donné marche bien mais j'ai un autre problème, c'est que si le son est allumé et que je fait mute, ça éteint le son. Deuxièmement, je peux augmenter et diminuer le son mais je ne peut pas choisir une valeur fixe or moi j'aimerais allumer le son et fixer sa valeur de façon a que ce soit toujours la même et les fonctions que tu m'a donner ne me permettent pas de le faire.
connait tu un moyen de fixer le son a une certaine valeur ou de connaitre sa valeur actuelle pour augmenter ou diminuer de ce qu'il faut ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
10 janv. 2015 à 08:42
10 janv. 2015 à 08:42
Ce que tu veux faire c'est une application de contrôle du son. Je pense que pour l'associer à ton MsgBox c'est un peu trop lourd. Je te propose une alternative.
Quand tu mets ceci pour monter le son, cela supprime le mode muet:
Si tu le mets 3 fois cela augmente de 3 fois, j'ai fait l'essai:
L'avantage avec 3 lignes de code, tu supprimes le mode muet et tu montes le son 3 fois plus fort.
Bon WE
Quand tu mets ceci pour monter le son, cela supprime le mode muet:
SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr))
Si tu le mets 3 fois cela augmente de 3 fois, j'ai fait l'essai:
SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr)) SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr)) SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr))
L'avantage avec 3 lignes de code, tu supprimes le mode muet et tu montes le son 3 fois plus fort.
Bon WE
Bonjour,
J'ai adapté ton idée pour avoir exactement le volume que je veux :
je baisse le son 50 fois car le son maximal de mon pc est 100 et la ligne
baisse de 2, comme ca je suis a 0 et apres j'augmente du nombre de fois que je veux (par exemple 15 fois si je veux un volume de 30) et au passage ça enlève le muet. ça donne :
ce n'est pas très optimiser mais ça marche bien.
merci beaucoup pour ton aide !
J'ai adapté ton idée pour avoir exactement le volume que je veux :
je baisse le son 50 fois car le son maximal de mon pc est 100 et la ligne
SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_DOWN * &H10000, IntPtr))
baisse de 2, comme ca je suis a 0 et apres j'augmente du nombre de fois que je veux (par exemple 15 fois si je veux un volume de 30) et au passage ça enlève le muet. ça donne :
For i = 1 To 50 SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_DOWN * &H10000, IntPtr)) Next For i = 1 To 15 SendMessage(Me.Handle, WM_APPCOMMAND, CType(&H30292, IntPtr), CType(APPCOMMAND_VOLUME_UP * &H10000, IntPtr)) Next
ce n'est pas très optimiser mais ça marche bien.
merci beaucoup pour ton aide !
8 janv. 2015 à 06:58