Lautstärke über Mausrad ändern. Warum geht das nicht?

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von VB2008er.

    Lautstärke über Mausrad ändern. Warum geht das nicht?

    Hallo,

    ich weiß jetzt schon wie ich die Lautstärke über das Mausrad erhöhen kann, wenn man es nach oben bewegt und dabei das mausrad drückt. ein timer liest aus, ob die mitlere maustaste gedrückt ist und sendet dieses an das label Mousebuttons1:

    VB.NET-Quellcode

    1. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    2. If MouseButtons1.Text = " 4194303" Then If e.Delta > 0 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. End Sub

    Allerdings wird es auch lauter, wenn ich es nach unten drehe ?(
    er soll das jetzt lauter machen, wenn die mitlere taste gedrückt ist und das mausrad nach oben bewegt wird.
    undleiser machen, wenn die mitlere taste gedrückt ist und das mausrad nach unten bewegt wird.
    Ehm du solltest vll. hier:

    VB.NET-Quellcode

    1. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    2. If MouseButtons1.Text = " 4194303" Then If e.Delta > 0 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.Volume[b]Up[/b]), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. End Sub

    das"Up" durch down ersetzen?
    nein, da er ja einmal das Down benötigt und anschließend wieder das UP durch KEYEVENTF_KEYDOWN, Up ist dabei nur die Taste welche simuliert werden soll...
    Edit: zu langsam...xD

    VB.NET-Quellcode

    1. 'If MouseButtons1.Text = " 4194303" Then '<- was willst du damit erreichen?
    2. If e.Delta > 0 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. End If
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Nee, man muss die mittlere Maustaste doch nicht gedrückt halten um zu scrollen.

    lg SeriTools

    EDIT:

    VB.NET-Quellcode

    1. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    2. If MouseButtons1.Text = "4194303" Then If e.Delta >= 120 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. Else
    6. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    7. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    8. End If
    9. End Sub


    So vielleicht?
    | Keine Fragen per PN oder Skype.
    achso mit gedrückter Scrollen? das find ich aber mal echt blöd...xD
    das kann er doch mit e.Button regeln?->es sei denn es ist parallel eine andere Taste gedrückt^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    hallo,

    jvbsl schrieb:


    warum nimmst du im MouseWheel Event nicht e.Button zur Hand?
    keine ahnung, bei mirgeht das manchmal nicht. :(

    SeriTools schrieb:


    VB.NET-Quellcode

    1. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    2. If MouseButtons1.Text = "4194303" Then If e.Delta >= 120 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. Else
    6. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    7. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    8. End If
    9. End Sub

    geht bei mir irgendwie nich, da is immer else und end If unterkringelt

    VB.NET-Quellcode

    1. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    2. If e.Button = MouseButtons.Middle AndAlso e.Delta >0 Then
    3. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    4. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    5. ElseIf e.Button = MouseButtons.Middle Then
    6. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    7. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    8. End If
    9. End Sub

    so hätte ich das gemacht...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Hi,

    VB.NET-Quellcode

    1. Public Class form1
    2. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    3. Const KEYEVENTF_KEYDOWN As Integer = 0
    4. Const KEYEVENTF_KEYUP As Integer = 2
    5. 'Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__
    6. Private Sub Leiser1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Leiser1.Click
    7. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    8. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    9. End Sub
    10. Private Sub Lauter1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lauter1.Click
    11. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    12. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    13. End Sub
    14. Private Sub Stumm1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Stumm1.Click
    15. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYDOWN, 0)
    16. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYUP, 0)
    17. End Sub
    18. 'Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__
    19. Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    20. End Sub
    21. Private Sub Checktaster1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Checktaster1.Tick
    22. 'Buttonsteuerung
    23. If Buttons1.Checked = False Then Lauter1.Enabled = False
    24. If Buttons1.Checked = False Then Stumm1.Enabled = False
    25. If Buttons1.Checked = False Then Leiser1.Enabled = False
    26. If Buttons1.Checked = True Then Lauter1.Enabled = True
    27. If Buttons1.Checked = True Then Stumm1.Enabled = True
    28. If Buttons1.Checked = True Then Leiser1.Enabled = True
    29. 'Trackbarsteuerung
    30. If Schieber1.Checked = False Then TrackBar1.Enabled = False
    31. If Schieber1.Checked = True Then TrackBar1.Enabled = True
    32. End Sub
    33. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    34. 'Still
    35. If TrackBar1.Value = 0 Then
    36. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYDOWN, 0)
    37. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYUP, 0)
    38. End If
    39. End Sub
    40. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    41. If e.Button = MouseButtons.Middle AndAlso e.Delta > 0 Then
    42. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    43. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    44. ElseIf e.Button = MouseButtons.Middle Then
    45. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    46. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    47. End If
    48. End Sub
    49. Private Sub Mausradtaster1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mausradtaster1.Tick
    50. MouseButtons1.Text = MouseButtons
    51. MouseButtons2.Text = MouseButtons
    52. End Sub


    Das ist mein überschaubarer Code, die Lautstärkeregelung über das mausrad geht aber immer nich nich :(
    Könnt ihr mir nochmal helfen?
    wie Alex2000 bereits gesagt hat, die API Dekleration:

    VB.NET-Quellcode

    1. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

    As Long wird zu As Integer...da in VB 6 ist As Long 32 Bit in .Net jedoch 64 Bit und Integer(Int32) 32 Bit...As Integer würde zu As Short(Int16) werden...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Jetzt habe ivh das ausgetauscht:

    VB.NET-Quellcode

    1. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    2. Const KEYEVENTF_KEYDOWN As Integer = 0
    3. Const KEYEVENTF_KEYUP As Integer = 2
    4. 'Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__
    5. Private Sub Leiser1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Leiser1.Click
    6. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    7. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    8. End Sub
    9. Private Sub Lauter1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lauter1.Click
    10. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    11. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    12. End Sub
    13. Private Sub Stumm1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Stumm1.Click
    14. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYDOWN, 0)
    15. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYUP, 0)
    16. End Sub
    17. 'Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__Lautstärke__
    18. Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    19. End Sub
    20. Private Sub Checktaster1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Checktaster1.Tick
    21. 'Buttonsteuerung
    22. If Buttons1.Checked = False Then Lauter1.Enabled = False
    23. If Buttons1.Checked = False Then Stumm1.Enabled = False
    24. If Buttons1.Checked = False Then Leiser1.Enabled = False
    25. If Buttons1.Checked = True Then Lauter1.Enabled = True
    26. If Buttons1.Checked = True Then Stumm1.Enabled = True
    27. If Buttons1.Checked = True Then Leiser1.Enabled = True
    28. 'Trackbarsteuerung
    29. If Schieber1.Checked = False Then TrackBar1.Enabled = False
    30. If Schieber1.Checked = True Then TrackBar1.Enabled = True
    31. End Sub
    32. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    33. 'Still
    34. If TrackBar1.Value = 0 Then
    35. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYDOWN, 0)
    36. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeMute), 0, KEYEVENTF_KEYUP, 0)
    37. End If
    38. End Sub
    39. Private Sub form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    40. If e.Button = MouseButtons.Middle AndAlso e.Delta > 0 Then
    41. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYDOWN, 0)
    42. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeUp), 0, KEYEVENTF_KEYUP, 0)
    43. ElseIf e.Button = MouseButtons.Middle Then
    44. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYDOWN, 0)
    45. Call keybd_event(CByte(System.Windows.Forms.Keys.VolumeDown), 0, KEYEVENTF_KEYUP, 0)
    46. End If
    47. End Sub
    48. Private Sub Mausradtaster1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mausradtaster1.Tick
    49. MouseButtons1.Text = MouseButtons
    50. MouseButtons2.Text = MouseButtons
    51. End Sub
    52. End Class


    Geht immer noch nicht. :(
    Ich betone: an sich ist ja alles in ordnung, die lautstärkeregelung über die Buttons geht ja schon, nur die Maus halt nicht.
    Wenn ich den Elsekram wegmache, wird es lauter wenn ich nach oben oder unten drehe.
    Ich verzweifel gleich an diesem Programm. :)