Seite 1 von 1

MultiMedia-Tasten unter Windows ab w2k

Verfasst: 04.03.2011 09:34
von ts-soft
Bei der Suche nach Möglichkeiten zum abfragen der MM-Tasten, bin ich leider nur auf
"nicht bei jedem" funktionierenden Code gestoßen. Also MSDN gestöbert und gefunden.
Vielleicht kann es ja jemand brauchen:

Code: Alles auswählen

EnableExplicit

Enumeration
  #APPCOMMAND_VOLUME_MUTE = 8
  #APPCOMMAND_VOLUME_DOWN
  #APPCOMMAND_VOLUME_UP
  #APPCOMMAND_MEDIA_NEXTTRACK
  #APPCOMMAND_MEDIA_PREVIOUSTRACK
  #APPCOMMAND_MEDIA_STOP
  #APPCOMMAND_MEDIA_PLAY_PAUSE
  #APPCOMMAND_MEDIA_PLAY = 46
  #APPCOMMAND_MEDIA_PAUSE
  #APPCOMMAND_MEDIA_RECORD
  #APPCOMMAND_MEDIA_FAST_FORWARD
  #APPCOMMAND_MEDIA_REWIND
  #APPCOMMAND_MEDIA_CHANNEL_UP
  #APPCOMMAND_MEDIA_CHANNEL_DOWN 
EndEnumeration

Procedure WinCB(hWnd, uMsg, wParam, lParam)
  Protected Result = #PB_ProcessPureBasicEvents
  Protected text.s
  
  Select uMsg
    Case #WM_APPCOMMAND
      Select (lParam >> 16) & $FFFF
        Case #APPCOMMAND_VOLUME_MUTE
          text = "Volume_Mute"
        Case #APPCOMMAND_VOLUME_DOWN
          text = "Volume_Down"
        Case #APPCOMMAND_VOLUME_UP
          text = "Volume_Up"
        Case #APPCOMMAND_MEDIA_NEXTTRACK
          text = "Media_NextTrack"
        Case #APPCOMMAND_MEDIA_PREVIOUSTRACK
          text = "Media_PreviousTrack"
        Case #APPCOMMAND_MEDIA_STOP
          text = "Media_Stop"
        Case #APPCOMMAND_MEDIA_PLAY_PAUSE
          text = "Media_Play_Pause"
        Case #APPCOMMAND_MEDIA_RECORD
          text = "Media_Record"
        Case #APPCOMMAND_MEDIA_PLAY
          text = "Media_Play"
        Case #APPCOMMAND_MEDIA_FAST_FORWARD
          text = "Media_Fast_Forward"
        Case #APPCOMMAND_MEDIA_REWIND
          text = "Media_Rewind"
        Case #APPCOMMAND_MEDIA_CHANNEL_DOWN
          text = "Media_Channel_Down"
        Case #APPCOMMAND_MEDIA_CHANNEL_UP
          text = "Media_Channel_Up"
      EndSelect
      Debug text
      ProcedureReturn #True; ansonsten geht die Message weiter und weitere Player reagieren ;)
  EndSelect
  ProcedureReturn Result
EndProcedure

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "")
SetWindowCallback(@WinCB())
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow : Break
  EndSelect
ForEver
PS: Browse-Tasten sind hier nicht bei, dafür bitte in der MSDN nachschlagen:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Re: MultiMedia-Tasten unter Windows ab w2k

Verfasst: 04.03.2011 11:30
von c4s
Eigentlich eine feine Sache, aber bei mir funktioniert es nicht.
Liegt wohl daran, dass ich immer ein extra Programm laufen lassen muss, mit dem man die Aktionen konfigurieren kann?! Auf jeden Fall kommt #WM_APPCOMMAND nicht an.

Scheinbar habe ich gar keine richtigen Multimedia-Tasten...

Re: MultiMedia-Tasten unter Windows ab w2k

Verfasst: 04.03.2011 11:34
von ts-soft
Geht bei mir mit Tastatur und Fernbedienung, wobei ich aber auch nicht alle Tasten habe,
auf der Tastatur sind es nur 5.

Re: MultiMedia-Tasten unter Windows ab w2k

Verfasst: 04.03.2011 16:05
von bobobo
btw. Ich hab sie auch nicht mehr alle :)

Re: MultiMedia-Tasten unter Windows ab w2k

Verfasst: 14.02.2012 13:19
von hth
Super, ich suche aber einen analogen Code für den Screen.

Auf eine Anfrage im englischen Forum gibt es noch keine mit meiner Tastatur funktionierende Lösung.
http://www.purebasic.fr/english/viewtop ... 16&t=49123

hth