Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Mediatasten der Tastatur verwenden
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

Mediatasten der Tastatur verwenden

beantworten | zitieren | melden

Hallo Leute,

wollte fragen ob es irgendwie möglich ist die Multimediatasten einer Tastatur "abzufragen" und sie zu verwenden (Play, Pause, Stop, etc).

mfg Daniel
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Ja, die Tasten sind alle im Keys-Enum aufgelistet.
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden

weist du zufällig auch noch wie ich die jederzeit abfragen kann ?

also zb. während ein lied abgespielt wird in winForms
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Sollte regulär mit z.B. überschreiben von OnKeyDown oder dem abonieren des KeyDown events funktionieren.
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden

Hast du da ein kleines Beispiel damit ich das kapier^^
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Ja, hier: MSDN: Control.KeyDown Event
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden

Ich hab das jetzt mal ausprobiert

Irgendwie geht das nicht wirklich



        private void Mediaplayer_KeyDown(object sender, KeyPressEventArgs e)
        {
            if (e.KeyCode == Keys.MediaPlayPause)
            {
                button1_Click(sender, e);
            }
            if (e.KeyCode == Keys.MediaStop)
            {
                StopMediaFile();
            }
            if (e.KeyCode == Keys.VolumeMute)
            {
                trackBar1.Value = 0;
            }
        }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Daniel B. am .
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Nein, das geht nicht. So stand das es allerdings auch nicht im Beispiel.
Schau dir doch mal die Event-Args an. Da ist eben genau ein (möglicherweise kombinierter) Wert des Enums drin mit dem du vergleichen kannst.

Falls du das Visual Studio nutzt kannst du ja auch einfach mal "switch" eingeben und zweimal Tab drücken... dann in den Platzhalter e.KeyCode eintragen, Enter and you're done.
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden


private void Mediaplayer_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {

                case Keys.MediaNextTrack:
                    {

                        break;
                    }
                  
                case Keys.MediaPlayPause:
                    {

                        startMediaFile(root, audioFiles, "mp3");
                        break;
                    }
                    
                case Keys.MediaPreviousTrack:
                    {
                        break;
                    }
     
                case Keys.MediaStop:
                    {
                        StopMediaFile();
                        break;
                    }
                  
            }
        }

Also so gehts schonmal net,
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Kommt drauf an was Mediaplayer ist. Bei mir geht es so. Evtl musst du auf der Form noch KeyPreview auf true setzen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Daniel B.,
Zitat
Hast du da ein kleines Beispiel damit ich das kapier^^
Noch ein wichtiger Hinweis dazu: Bitte nicht versuchen, sowas nicht auf uns abzuwälzen, sondern immer selbst in der :rtfm: Doku gucken.

herbivore
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden

Danke so funktionierts

Nur 1 Problem gibts noch,

es geht nur wenn ich auf der Form bin, ich will aber das es auch funktioniert wenn ich zB mit FireFox im internet bin und ich auf Stop drück das es dann aufhört zu spieln
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

;-) Dann schau mal in der Forumssuche nach Hooks....
private Nachricht | Beiträge des Benutzers
Daniel B.
myCSharp.de - Member



Dabei seit:
Beiträge: 81
Herkunft: Linz

Themenstarter:

beantworten | zitieren | melden

Ich hätte zwar was gefunden, nur ich bekomme trotzdem die Mediatasten nicht "gesendet" , jede andere funzt aber
private Nachricht | Beiträge des Benutzers