IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Arrêt Sonnerie ne fonctionne pas


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonnerie ne fonctionne pas
    Bonjour,
    Dans mon programme j’ai une Alarme qui fonctionne mais je n’arrive pas à l’arrêter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Hora = Hora1 And Minute = Minute1 Then
        SoundName$ = App.Path & "\" & "Alarm_Clock.Wav"
       wFlags% = SND_ASYNC Or SND_NODEFAULT
       x% = sndPlaySound(SoundName$, wFlags%)

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Astuce : Clic droit sur le bureau ou dans le dossier "App.Path", pointer sur Nouveau ensuite fichier wav qu'on renomme en Stop.wav
    Ensuite dans l'évènement Click d'un CommandButton mettre ceci : sndPlaySound App.Path & "\Stop.wav", wFlags.

    A propos, wFlags est de type Long ainsi que X
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Salut

    Ou sndPlaySound vbNull, vbNull
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Citation Envoyé par ProgElecT Voir le message
    Salut

    Ou sndPlaySound vbNull, vbNull
    Bonjour,
    Merci Mais ne fonctionne pas

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Citation Envoyé par l_autodidacte Voir le message
    Astuce : Clic droit sur le bureau ou dans le dossier "App.Path", pointer sur Nouveau ensuite fichier wav qu'on renomme en Stop.wav
    Ensuite dans l'évènement Click d'un CommandButton mettre ceci : sndPlaySound App.Path & "\Stop.wav", wFlags.

    A propos, wFlags est de type Long ainsi que X
    Bonjour,
    Il me donne "Erreur de complation: erreur de syntaxe" ??

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Cela doit provenir du mode d'ouverture, 2éme paramètre.
    Essais avec un CommandButton et en changent le CheminEtTitre
    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
    Option Explicit
    '________________________________________ API _______________________________________
    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Const SND_ASYNC = &H1
    Const SND_NODEFAULT = &H2
    Dim CheminEtTitre As String
    Dim wFlags As Long
     
    Private Sub Form_Load()
    'pour essais
    CheminEtTitre =  "C:\ploutounette\VOICE\SONA3.WAV"
    wFlags = SND_ASYNC Or SND_NODEFAULT
    sndPlaySound CheminEtTitre, wFlags
    End Sub
    Private Sub Command1_Click()
    sndPlaySound vbNullString, vbNull
    End Sub
    Code revérifié, vbNullString évite le "Ding" lors du Stop que l'on a si on met un vbNull, mais le code de départ que je t'ai proposé dans mon message précédant ne provoque pas d'erreur non plus.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Il me donne "Erreur de compilation: erreur de syntaxe" ??
    J'ai pourtant testé avant d'envoyer la réponse et cela fonctionnait parfaitement.
    Peut-être que ton App.Path se termine par le caractère \ qui pourrait être à l'origine de l'erreur invoquée ! ou que le flaf (wFlags) devrait être remplacé par (vbNull) comme l'a indiqué ProgElecT(bonjour).
    Une autre source de cette erreur : Si tu as gardé les variables pendant l'utilisation telles qu'elles sont et que tu as changé le type cette erreur peut se produire et je vote pour cette possibilité:
    Par exemple, dans la partie appel x% devrait être soit x tout cours ou x&. Les autres variables sont aussi à traiter de la même façon.
    Après un nouveau test de ma proposition et de celle de ProgElecT, les 2 fonctionnent correctement.

    Sinon je ne vois pas d'autres possibilités causant l'erreur.
    Voici le code de test et les fichiers utilisés :
    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
    18
    Option Explicit
     
    Dim SoundName$, X&, wFlags&
    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Private Const SND_ASYNC = &H1         '  play asynchronously
    Private Const SND_NODEFAULT = &H2     '  silence not default, if sound not found
     
    Private Sub Command1_Click()
     
        SoundName = "C:\Son.wav"
       wFlags = SND_ASYNC Or SND_NODEFAULT
       X = sndPlaySound(SoundName, wFlags)
    End Sub
     
    Private Sub Command2_Click()
        sndPlaySound "C:\Stop.wav", wFlags ' ou encore vbNull pour wFlags
        'sndPlaySound vbNullString, vbNull
    End Sub
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip Son.zip (954,6 Ko, 93 affichages)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Bonjour,
    Non, pas d’erreur mai ne s’arrête pas

  9. #9
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Salut l_autodidacte et pirouge

    pirouge, fais un nouveau projet VB, 1 Form et 1 CommandButton et le code de l_autodidacte ou celui que je t'ai fourni.
    Y a-t-il toujours une erreur chez toi ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Bonjour,
    J’ai fait comme tu as dit, mais ça fonctionne pas.
    Jai à signaler que quand je appuie sur le bouton le son se coupe mais il reprend aussitôt

  11. #11
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Je pense que le problème vient du matériel car si cela a fonctionné sur 2 machines différentes, le côté programmation est à écarter.
    As-tu la possibilité de tester sur une autre machine ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Citation Envoyé par l_autodidacte Voir le message
    Je pense que le problème vient du matériel car si cela a fonctionné sur 2 machines différentes, le côté programmation est à écarter.
    As-tu la possibilité de tester sur une autre machine ?
    Bonjour,
    No, j’ai un seul computer

  13. #13
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    No, j’ai un seul computer
    Suite à cela, on change de cap :
    La fonction sndPlaySound étant maintenue pour la compatibilité antérieure, on va tester avec PlaySound :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Option Explicit
     
    Private Const SND_ASYNC = &H1
    Private Const SND_FILENAME = &H20000
    Private Const SND_PURGE = &H40           '  Supprime les évènements non statiques
    Private Const SND_SYNC = &H0
    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
    '
    '
     
    '===============IMPORTANT ========================
    'Mettre sur Form1 3 CommandButtons (Command1)indexés de 0 à 2
    '=================================================
     
    Private Sub Command1_Click(Index As Integer)
     
       Select Case Index
         Case 0: PlaySound "C:\Son.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC 'On joue le son
         Case 1: PlaySound "C:\Stop.wav", ByVal 0&, SND_PURGE                'On arrête en utilisant Stop.wav
         Case 2: PlaySound "C:\Son.wav", ByVal 0&, SND_PURGE   'On arrête en utilisant le son lui-même
                                                               'surtout ne pas appuyer une seconde fois sur ce bouton _
                                                                sauf si on a déjà appuyé sur le bouton "Jouer Son.wav" _
                                                                autrement dit si le son est en cours. Dans le cas contraire _
                                                                il n'y a plus d'accès aux différents contrôles = genre de plantage _
                                                                momentané jusqu'à la fin du son qu'on vient d'invoquer _
                                                                même un DoEvents ne résout pas le problème
      End Select
    End Sub
     
    Private Sub Form_Load()
        Dim I%
        Me.Width = 7000: Me.Height = 4000
        Me.Left = (Screen.Width - Me.Width) \ 2
        Me.Top = (Screen.Height - Me.Height) \ 2
        Command1(0).Left = 300
        Command1(0).Caption = "Jouer Son.wav"
        Command1(1).Caption = "Arrêter avec Stop.wav"
        Command1(2).Caption = "Arrêter avec Son.wav"
        For I = 0 To 2
             Command1(I).Height = 600
             Command1(I).Width = 1900
             Command1(I).Top = 1800
        Next I
        Command1(1).Move Command1(0).Left + Command1(0).Width + 100
        Command1(2).Move Command1(1).Left + Command1(1).Width + 100
        Command1(2).ToolTipText = "Ne pas appuyer 2 fois de suite sur ce bouton"
    End Sub
    'Si on quitte avant d'arrêter le son :
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Call Command1_Click(1)
    End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut Arrêt Sonorie ne fonctionne pas
    Bonjour,
    J’ai le plaisir de vous annoncer que mon problème est résolu, mon alarme ne s’arrête pas,parce qu’elle est réactivée par l’horaire lui-même il suffisait d’ ajouter Hora1 = 0 et Minute1 = 0
    Et voilà le problème est résolu, Je suis content , je tiens à vous remercier tous
    Merci beaucoup.

  15. #15
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par pirouge Voir le message
    Bonjour,
    J’ai le plaisir de vous annoncer que mon problème est résolu, mon alarme ne s’arrête pas,parce qu’elle est réactivée par l’horaire lui-même il suffisait d’ ajouter Hora1 = 0 et Minute1 = 0
    Et voilà le problème est résolu, Je suis content , je tiens à vous remercier tous
    Merci beaucoup.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Hora = Hora1 And Minute = Minute1 Then
           Hora1 = 0: Minute1 = 0

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo