国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
給VB.net程序加上全局熱鍵功能
1.定義一些必要的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
    Public Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Integer, ByVal id As Integer) As Integer

    Public Const WM_HOTKEY As Short = &H312S
    Public Const MOD_ALT As Short = &H1S
    Public Const MOD_CONTROL As Short = &H2S
    Public Const MOD_SHIFT As Short = &H4S

    Public preWinProc As Integer
    Public uVirtKey1, Modifiers, idHotKey As Integer

    Public Structure taLong
        Dim ll As Integer
    End Structure

    Public Structure t2Int
        Dim lWord As Short
        Dim hword As Short
    End Structure

2.先注冊熱鍵
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ret As Integer

        idHotKey = 100 ''in the range &h0000 through &hBFFF
        Modifiers = MOD_ALT ''輔助鍵為Alt
        uVirtKey1 = System.Windows.Forms.Keys.D  ''注冊的熱鍵為Alt+D
        '注冊熱鍵
        ret = Module1.RegisterHotKey(Me.Handle.ToInt32, idHotKey, Modifiers, uVirtKey1)
        If ret = 0 Then
            MsgBox("注冊熱鍵失敗,請使用其它熱鍵!", MsgBoxStyle.Critical, "錯誤")
        End If
    End Sub
記得在窗體關閉時注銷熱鍵哦?。?!
    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        Module1.UnregisterHotKey(Me.Handle.ToInt32, uVirtKey1)
    End Sub
3.然后展開窗體代碼頁最上面那一句“Windows 窗體設計器生成的代碼”,找到其中New的那一段,在這一段后面加上這么一個函數(其實哪里都行,只是我喜歡放在這里 ^_^)
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
        Protected Overrides Sub WndProc(ByRef m As Message)
        Dim lp As taLong
        Dim i2 As t2Int
        Dim TempData As String
        ' Listen for operating system messages
        Select Case (m.Msg)
            ' The WM_ACTIVATEAPP message occurs when the application
            ' becomes the active application or becomes inactive.
        Case WM_HOTKEY
                MsgBox("HotKey1")
                If m.WParam.ToInt32 = idHotKey Then
                    lp.ll = m.LParam.ToInt32

                    i2.lWord = lp.ll And &HFFFF
                    i2.hword = (lp.ll And &HFFFF0000) >> 16

                    MsgBox(i2.hword.ToString & "," & i2.lWord)

                    If (i2.lWord = Modifiers) And i2.hword = uVirtKey1 Then
                        If System.Windows.Forms.Clipboard.GetDataObject.GetDataPresent(System.Windows.Forms.DataFormats.Text) Then   '這一段的判斷好像不是很準確,我還沒仔細研究,不好意思了哦
                            TempData = System.Windows.Forms.Clipboard.GetDataObject.GetData(System.Windows.Forms.DataFormats.Text)
                        End If

                        MsgBox("剪貼板中的數據是文本格式的!" & vbCrLf & "內容為: " & TempData)
                    End If
                End If
        End Select
        MyBase.WndProc(m)
    End Sub


  • 摘要:如何設置VB.NET窗體的全局熱鍵(快捷鍵),很多人都為這個頭疼,看到網上有很多的例子,但是都感覺好復雜,越看越糊涂。經過筆者的研究,把代碼做了最簡化的處理,使您一看就明白。本文使用API函數注冊熱鍵表,下面代碼可以直接復制運行,不用做任何修改,方便您測試學習。關于半全局熱鍵(只對一個窗體或控件集有效)的定義,我在另一篇博文中有說明(章魚哥出品—VB.Net自定義快捷鍵詳解之半全局快捷鍵)<p></p><p>'***************
  • 如何設置VB.NET 窗體的全局熱鍵(快捷鍵),很多人都為這個頭疼,看到網上有很多的例子,但是都感覺好復雜,越看越糊涂。經過筆者的研究,把代碼做了最簡化的處理,使您一看就明白。本文使用API函數注冊熱鍵表,下面代碼可以直接復制運行,不用做任何修改,方便您測試學習。

    關于半全局熱鍵(只對一個窗體或控件集有效)的定義,我在另一篇博文中有說明(章魚哥出品—VB.Net 自定義快捷鍵詳解之半全局快捷鍵)

    <p></p><p>'********************************************************************************  </p>'作者:章魚哥  QQ:3107073263 群:309816713  '需要源碼或是有好的建議請聯系我'主要內容:'       利用API函數設置全局熱鍵(快捷鍵)的流程和實現'實現功能:'      按下Shift+Q時 觸發(fā)Button1的Click事件'     按下Ctrl+D時,觸發(fā)Button2的Click事件'*********************************************************************************  Public Class Form1    '聲明注冊熱鍵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,此值固定,不能修改    Public Const MOD_ALT As Short = &H1S  'ALT按鍵ID    Public Const MOD_CONTROL As Short = &H2S  'Ctrl    Public Const MOD_SHIFT As Short = &H4S  'Shift    Public uVirtKey1, Modifiers, idHotKey As Integer    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load        idHotKey = 1 '注冊的熱鍵的消息ID,這個值可以隨便定義,只要與下面兩個參數對應即可        Modifiers = MOD_SHIFT '輔助鍵為Shift        uVirtKey1 = Keys.Q   '注冊的熱鍵為Shift+Q        '注冊熱鍵        RegisterHotKey(Me.Handle.ToInt32, idHotKey, Modifiers, uVirtKey1) '注冊的熱鍵為Shift+Q        RegisterHotKey(Me.Handle.ToInt32, 2, MOD_CONTROL, Keys.D) '注冊的熱鍵為Ctrl+D。這里和上步一樣,我把參數直接寫了,沒有先賦值,相信大家都明白    End Sub    '窗體的消息處理函數    Protected Overrides Sub WndProc(ByRef m As Message)        If m.Msg = WM_HOTKEY Then '判斷是否為熱鍵消息            Select Case m.WParam.ToInt32 '判斷熱鍵消息的注冊ID                Case 1                    Button1_Click(Nothing, Nothing) 'Shift+Q                Case 2                    Button2_Click(Nothing, Nothing) 'Ctrl+D            End Select        End If        MyBase.WndProc(m) '循環(huán)監(jiān)聽消息    End Sub    '按鈕1的Click事件    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        TextBox1.Text = "此時觸發(fā)按鈕1,快捷鍵" & Button1.Text    End Sub    '按鈕2的Click事件    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        TextBox1.Text = "此時觸發(fā)按鈕2,快捷鍵" & Button2.Text    End Sub    '最后別忘記注銷熱鍵哦    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing        UnregisterHotKey(Me.Handle.ToInt32, uVirtKey1)        UnregisterHotKey(Me.Handle.ToInt32, Keys.D)    End SubEnd Class

    代碼實現效果截圖:


    問題:本來是想使用Application.AddMessageFilter 方法的,但是后來發(fā)現單個按鍵的快捷鍵還能實現,但是組合快捷鍵就不容易實現了,有大神實現的,請賜教

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB6.0實現將窗體最小化到托盤區(qū)
VB實用代碼,收藏!!
用VB6編寫強力的windows隱藏引擎
vb訪問SQL Server 的幾種常用方法
VB.NET 2005編寫定時關機程序
VB編外掛的一些基礎知識
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服