冰楓論壇

標題: vb2013請問如何寫一個可以在遊戲上啟動功能的熱鍵 [打印本頁]

作者: 安哥v    時間: 2017-12-2 18:34
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 乂Boyue乂    時間: 2017-12-2 18:34
If GetAsyncKeyState(Keys.F4) Then   '按下F4               
'你
'想
'做
'的
'事
End If
作者: qwas963563    時間: 2017-12-2 18:39
利用 GetAsyncKeyState
判斷即可~
作者: 安哥v    時間: 2017-12-2 19:06
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 000x000    時間: 2017-12-2 20:27
本帖最後由 000x000 於 2017-12-2 20:28 編輯

比如CheckBox Text後加(&A)   <--A為快速鍵
例如功能為 無敵(&A) , 不過 我記得這好像不能換視窗按  你參考就好


作者: lonelylove    時間: 2018-2-14 17:35
本帖最後由 lonelylove 於 2018-2-14 17:37 編輯

  哇..竟然扣分了...

' --------------------------------------------------------------------------------------
    '声明注册热键API函数  
    Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Integer, ByVal id As Integer,
                                                    ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer
    '声明注销热键API函数  
    Public Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Integer, ByVal id As Integer) As Integer

    Public Const WM_HOTKEY As Short = &H312S '热键消息ID,此值固定,不能修改  



    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load


        RegisterHotKey(Me.Handle.ToInt32, 1, Nothing, Keys.F3) '注册的热键为F3
        RegisterHotKey(Me.Handle.ToInt32, 2, Nothing, Keys.F5) '注册的热键为F5
        RegisterHotKey(Me.Handle.ToInt32, 3, Nothing, Keys.F2) '注册的热键为F2
    End Sub

    '窗体的消息处理函数  
    Protected Overrides Sub WndProc(ByRef m As Message)

        If m.Msg = WM_HOTKEY Then '判断是否为热键消息  
            Select Case m.WParam.ToInt32 '判断热键消息的注册ID  
                Case 1
                    If CheckBox5.Checked = True Then
                        CheckBox5.Checked = False
                    Else
                        CheckBox5.Checked = True
                    End If

                    ' 计数1 = 计数1 + 1      '两种方法
                    ' CheckBox5.Checked = True
                    ' If 计数1 > 1 Then
                    '    CheckBox5.Checked = False
                    '    计数1 = 0
                    ' End If
                Case 2
                    If CheckBox7.Checked = True Then
                        CheckBox7.Checked = False
                    Else
                        CheckBox7.Checked = True
                    End If

                Case 3
                    If CheckBox4.Checked = True Then
                        CheckBox4.Checked = False
                    Else
                        CheckBox4.Checked = True
                    End If


            End Select
        End If

        MyBase.WndProc(m) '循环监听消息  
    End Sub

    '最后别忘记注销热键哦  
    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        UnregisterHotKey(Me.Handle.ToInt32, Keys.F3)
        UnregisterHotKey(Me.Handle.ToInt32, Keys.F2)
        UnregisterHotKey(Me.Handle.ToInt32, Keys.F5)
    End Sub














歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓