begin process at 2012 02 09 20:54:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Touches multimédia


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Touches multimédia

lundi 27 février 2006 à 23:05:13 | Touches multimédia

tahiti_bob

Membre Club
Bonsoir,

Est ce quelqu'un peut m'éclairer comment détecter l'appui sur les touches Play/Pause, Stop, Piste suivante, etc... sur les claviers multimédia ?

Lorsque l'on met la propriété ShortcutKeys à par exemple MediaNextTrack, VS me retourne une erreur comme quoi la touche 176 est inconnue...


Merci de votre aide
@++ Tahiti_bob
mardi 28 février 2006 à 06:36:06 | Re : Touches multimédia

Lutinore

Administrateur CodeS-SourceS
Salut tu peux utiliser la propriété ToolStripMenuItem.ShortcutKeyDisplayString et tu géres la touche dans l'évènement OnKeyDown de ta forme, tu peux aussi passer la propriété Form.KeyPreview à true si tu as plusieurs contrôles dans ta forme. On peut aussi gérer les touches multimédia avec le message WM_APPCOMMAND.
mercredi 1 mars 2006 à 15:03:56 | Re : Touches multimédia

tahiti_bob

Membre Club

Merci Lutinore de ta réponse!

J'avais effectivement commencé à chercher du coté des notifications avec WM_APPCOMMAND mais je n'ai aucune idée comment mettre en oeuvre ça.
J'ai trouvé quelques exemples sur le net mais uniquement en C++ et rien en C#...

Si tu as quelques pistes

Merci d'avance
@++ Tahiti_bob

mercredi 1 mars 2006 à 17:20:38 | Re : Touches multimédia

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Tu peux intercepter ces touches dans le OnKeyDown ( l'event KeyDown ) de ta forme ça marche.

Pour WM_APPCOMMAND mets ce code dans ta forme :


private const int WM_APPCOMMAND = 0x0319;

private const int APPCOMMAND_MEDIA_NEXTTRACK = 11;
private const int APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
private const int APPCOMMAND_MEDIA_STOP = 13;
private const int APPCOMMAND_MEDIA_PLAY_PAUSE = 14;

// ..

protected override void WndProc( ref Message m )
{
    if ( m.Msg == WM_APPCOMMAND )
    {
        // J'ai simplifié faut voir si ça marche bien !!
        //( ( int )( ( ( short )( ( int )m.LParam >> 16 ) ) & ~0xF000 ) )
        switch ( ( byte )( ( int )m.LParam >> 16 ) )
        {
            case APPCOMMAND_MEDIA_PLAY_PAUSE :
                this.Text = "APPCOMMAND_MEDIA_PLAY_PAUSE";
                m.Result = ( IntPtr )1;
                break;

               // ..
        }
    }

    base.WndProc( ref m );
}

mercredi 1 mars 2006 à 20:30:53 | Re : Touches multimédia

tahiti_bob

Membre Club
Merci pour ce code Lutinore.

J'ai juste un "phénomène de rebond" lorsque j'appui sur une touche : le code est exécuté 2 fois...

Merci encore
@++ Tahiti_bob
jeudi 2 mars 2006 à 01:44:25 | Re : Touches multimédia

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

As tu essayé cette solution qui est plus simple et qui marche bien chez moi avec un clavier USB:




protected override void OnKeyDown( KeyEventArgs e )
{
    //base.OnKeyDown( e );

    MessageBox.Show( e.KeyData.ToString( ) );
}

Si tu veux quand même utiliser WM_APPCOMMAND essaye de remplacer le break par un return.

protected override void WndProc( ref Message m )
{
    if ( m.Msg == WM_APPCOMMAND )
    {
        switch ( ( byte )( ( int )m.LParam >> 16 ) )
        {
            case APPCOMMAND_MEDIA_PLAY_PAUSE :
                // ..
                m.Result = ( IntPtr )1;
               
return;
        }
    }

    base.WndProc( ref m );
}

jeudi 2 mars 2006 à 11:50:21 | Re : Touches multimédia

tahiti_bob

Membre Club
Merci beaucoup Lutinore ca marche impec'!

J'avais essayé l'évènement OnKeyDown mais rien à faire ca marchait avec toutes les touches sauf les multimédias (Clavier Logitech?? )
C'était pour ça que je m'était tourné vers le WM_APPCOMMAND...

@++ Tahiti_bob


Cette discussion est classée dans : touches, multimédia


Répondre à ce message

Sujets en rapport avec ce message

bloquage de certaines touches [ par CracK ] je souhaiterai savoir comment désactiver la combinaison de touche " ctrl alt supr " " alt tab " "touche windows " etc ... si qq1 peut me renseigner , Récuper les touches shift et ctrl dans un évènement [ par thiosyiasar ] Bonjour,Je voudrais savoir comment récupérer dans l'évenement suivant si les touches Maj ou Ctrl sont enfoncéesvoid TreeView_DoubleClick(object sender contrôle du clavier [ par Yandroide ] salut, J'ai un bouton qui lance une application externe dès qu'on clique dessus. L'application externe devient la fenêtre active. Je voudrais pouvoir c#, touche du clavier [ par stiley1 ] salut , j'ai 3 boutons (btn1, btn2, btn3)je voudrais associer tes touches du claviers à ces boutons(touches raccourcies)echap=btns, entree=btns et z=b Touches activent du clavier [ par JuS ] Comment savoir quelles sont les touches du clavier activent ?Par exemple, quand je lance mon appli, je voudrais savoir si je suis en mode INSER ou REF ->!!Touches du clavier!!<- [ par Fildomen ] SalutComment savoir les touches appuyées?? sans me relier avec un controle. (pas d'api SVP)mercihttp://www.devportail.tk touches enfoncées et touches relachées ... [ par Thanos_the_yopper ] J'ai une classe dérivée de IMessageFilter pour intercepter les touches qui sont appuyées sur le clavier.J'ai donc défini une constante int WM_KEYDOWN Comment bouger un Picturebox [ par Ruffneck2045 ] Bonjour à tous, Voici mes questions : 1 - Il y a un peu moins d'un an j'ai trouvé sur les sources du site, une application qui servait à bouger une Intercepter les touches du clavier pour des combinaisons sous Windows [ par kobee12 ] Bonjour à tous,je suis débutant en C#.J'aimerais faire un programme qui permettrait, selon une combinaison de touches, d'executer une appli quelqconqu Comment associer un événement à une combinaison de touches? [ par Chris_LaFouine ] Bonjour Je développe une petite application en C# (Framework 2.0) dans mon coin et j'aimerai savoir un truc : Comment associer un événement à une com


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,700 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales