begin process at 2010 02 09 22:14:40
  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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,281 sec (3)

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