グローバルホットキー
特定のキーをフックしたいときはグローバルホットキーをつかうといい
コードは続きを読むで
Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer, _ ByVal fsModifiers As Integer, ByVal vk As Keys) As Integer Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer Private Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Short Private Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal nAtom As Short) As Short Private Const MOD_ALT As Integer = &H1 Private Const MOD_CONTROL As Integer = &H2 Private Const MOD_SHIFT As Integer = &H4 Private Const MOD_WIN As Integer = &H8 Private Const WM_HOTKEY As Integer = &H312 Dim hotkeyID As Short Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load hotkeyID = GlobalAddAtom(Guid.NewGuid.ToString) RegisterHotKey(Me.Handle, hotkeyID, MOD_WIN, Keys.S) End Sub Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing UnregisterHotKey(Me.Handle, hotkeyID) GlobalDeleteAtom(hotkeyID) End Sub Protected Overrides Sub WndProc(ByRef m As Message) MyBase.WndProc(m) If m.Msg = WM_HOTKEY Then '// ここで実行する関数をよぶ End If End Sub