0

Visual Basic を使用して Visual Studio 2010 で音楽プレーヤーを作成しました。右上隅のキーを機能に割り当てたいと思います。少なくとも私のキーボードでは、「Home」、「Pg Up」、「Pg Down」、および「End」キーにはすべてメディア キーがあります (一時停止/再生、停止、前へ、進む)。これらは青色で書かれているので、明らかに、代替機能を使用するには 'Fn' を押す必要があります ('Home' の代わりに 'Fn' + 'Home' を押します)。最も明確な説明ではないかもしれませんが、私が何をしたいのかを理解するのはロケット科学ではありません. ユーザーが「Fn」を押しながら上記のボタンのいずれかを押したときに機能を開始したいと思います。

前もって感謝します

4

1 に答える 1

1

Keys.MediaXXX 定数を使用して、マルチメディア キーをトラップできます。これらのキーを標準形式でトラップする例を次に示します。

Public Class Form1

    Protected Overrides Function ProcessKeyMessage(ByRef m As System.Windows.Forms.Message) As Boolean
        Const WM_KEYDOWN As Integer = &H100
        If m.Msg = WM_KEYDOWN Then
            Select Case m.WParam.ToInt32
                Case Keys.MediaStop
                    Debug.Print("Stop")
                Case Keys.MediaPlayPause
                    Debug.Print("PlayPause")
                Case Keys.MediaNextTrack
                    Debug.Print("Next")
                Case Keys.MediaPreviousTrack
                    Debug.Print("Previous")
            End Select
        End If
        Return MyBase.ProcessKeyMessage(m)
    End Function

End Class

*これは、 を使用してフォームの KeyDown() イベントでも実行できますe.KeyData

編集: フォームの KeyDown() イベントを使用する例を次に示します。KeyPreview(); を有効にしたことに注意してください。フォーム上にフォーカスを受け取ることができるコントロールがある場合、これを行う必要があります。

Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
    End Sub

    Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyData
            Case Keys.MediaStop
                Debug.Print("Stop")
            Case Keys.MediaPlayPause
                Debug.Print("PlayPause")
            Case Keys.MediaNextTrack
                Debug.Print("Next")
            Case Keys.MediaPreviousTrack
                Debug.Print("Previous")
        End Select
    End Sub

End Class
于 2013-07-14T22:30:34.577 に答える