0

真的很简单。我希望应用程序能够保持监视KeyDown事件,即使没有焦点。在Visual Basic中执行没有焦点的KeyDown函数

Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    Select Case e.KeyData 
     Case Keys.MediaStop 
      PictureBox2_Click(sender, e) 
     Case Keys.MediaPlayPause 
      PauseToolStripMenuItem_Click(sender, e) 
     Case Keys.MediaNextTrack 
      SkipTrackToolStripMenuItem_Click(sender, e) 
     Case Keys.MediaPreviousTrack 
      PreviousTrackToolStripMenuItem_Click(sender, e) 
    End Select 
End Sub 

上述代码适用于音乐播放器。当按下媒体键时会调用函数('Fn'+'Home','Fn'+'Pg Up'...等等)

在之前的评论中,有人建议寻找WH_KEYBOARD_LL解决方案,但我如果我诚实的话,我真的不太了解它。

UPDATE:

建议的link不是很大的“作为任何”关键字不支持“声明”的功能。

这是我在多大程度上与它得到...

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As **Any**) As Long 

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long 

Public Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByVal pfnFilterProc As Long) As Long 

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long 

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As **Any**, Source As **Any**, ByVal Length As Long) 

**Global** Const WH_KEYBOARD_LL = 13 
Public Const HC_ACTION = 0 

Structure HookStruct 
    Dim vkCode As Long 
    Dim scancode As Long 
    Dim flags As Long 
    Dim time As Long 
    Dim dwExtraInfo As Long 
End Structure 

的错误是Visual Studio是强调都写在大胆 在悬停“任意”它给我的消息“‘作为任何’不‘声明’声明支持”

在“全球性”的悬停它给“语法错误”

回答

0

实现使用Windows API键盘钩子是解决方案。请检查:http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=13506&lngWId=1

+0

请参见上面 –

+0

检查 1. http://msdn.microsoft.com/en-us/library/347xhy8d.aspx 2. http://www.codeproject.com/Articles更新/ 8641 /等效的CopyMemory-in-NET ...... 对于.NET版本,请检查以下链接:http://sim0n.wordpress.com/2009/03/28/vbnet-keyboard-hook -类/ – rags