HotKey insert hide va show Form2 = timer VB6

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

Post Reply
Mars
Thành viên chính thức
Thành viên chính thức
Posts: 32
Joined: Mon 07/06/2010 11:27 am
Has thanked: 2 times

HotKey insert hide va show Form2 = timer VB6

Post by Mars »

ai bik làm timer hotkey insert ẩn và hiện form2 cho em với em xin thanks :((
User avatar
gtdcomputer
Thành viên danh dự
Thành viên danh dự
Posts: 1296
Joined: Fri 18/07/2008 12:08 pm
Location: Kiên Giang
Has thanked: 8 times
Been thanked: 116 times
Contact:

Re: HotKey insert hide va show Form2 = timer VB6

Post by gtdcomputer »

Bạn thử làm như sau nhé không biết ổn không trong Module
  1. Option Explicit
  2. Public Enum ModConst
  3.     MOD_ALT = &H1
  4.     MOD_CONTROL = &H2
  5.     MOD_SHIFT = &H4
  6. End Enum
  7. #If False Then
  8. Private MOD_ALT, MOD_CONTROL, MOD_SHIFT
  9. #End If
  10.  
  11. Private px                As Long
  12. Private Const WM_HOTKEY   As Long = &H312
  13. Private hot_counter       As Long
  14. Public oldProc            As Long
  15. Public mm                 As Object
  16. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _
  17.                                                                       ByVal lpWindowName As String) As Long
  18. Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, _
  19.                                                        ByVal hWnd As Long, _
  20.                                                        ByVal Msg As Long, _
  21.                                                        ByVal wParam As Long, _
  22.                                                        ByVal lParam As Long) As Long
  23. Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, _
  24.                                                       ByVal ID As Long, _
  25.                                                       ByVal fsModifiers As Long, _
  26.                                                       ByVal vk As Long) As Long
  27. Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, _
  28.                                                         ByVal ID As Long) As Long
  29. Public Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, _
  30.                                                       ByVal nIndex As Long, _
  31.                                                       ByVal dwNewLong As Long) As Long
  32. Public Const GWL_WNDPROC           As Long = -4
  33. Public oldProc  As Long
  34. Public Sub ReleasHotKey(ByVal lngHwnd As Long)
  35.  
  36. Dim i As Integer
  37.     For i = 1 To hot_counter
  38.         UnregisterHotKey lngHwnd, i
  39.     Next i
  40.     hot_counter = 0
  41. End Sub
  42. Public Function SetHotKey(ByVal lngHwnd As Long, _
  43.                           Modifier As ModConst, _
  44.                           Optional KeyCode As Integer) As Long
  45.  
  46.     hot_counter = hot_counter + 1
  47.     SetHotKey = RegisterHotKey(lngHwnd, hot_counter, Modifier, KeyCode)
  48. End Function
  49. Public Function WndProc(ByVal lngHwnd As Long, _
  50.                         ByVal uMsg As Long, _
  51.                         ByVal wParam As Long, _
  52.                         ByVal lParam As Long) As Long
  53.  
  54.     WndProc = 0
  55.     If uMsg = WM_HOTKEY Then
  56.         Select Case wParam
  57.             Case 1
  58.                 If Form2.Visible = True Then
  59.                     Form2.Show
  60.                 Else
  61.                     Form2.Hide
  62.                 End If
  63.                 daTatMH = Not daTatMH
  64.         End Select
  65.     Else
  66.         WndProc = CallWindowProcA(oldProc, lngHwnd, uMsg, wParam, lParam)
  67.     End If
  68. End Function
Trong form bạn bỏ code vào như sau:
  1. With Me
  2.         oldProc = SetWindowLongA(.hWnd, GWL_WNDPROC, AddressOf WndProc)
  3.         SetHotKey .hWnd, 0&, vbKeyInsert
  4. End With
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật
kkk_kkk
Thành viên danh dự
Thành viên danh dự
Posts: 331
Joined: Mon 02/06/2008 9:47 am
Been thanked: 5 times

Re: HotKey insert hide va show Form2 = timer VB6

Post by kkk_kkk »

Mars wrote:ai bik làm timer hotkey insert ẩn và hiện form2 cho em với em xin thanks :((
đặt inteval của timer tầm 200 - 400 cho đỡ giật

Code: Select all

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF2) Then
 If Form2.Visible = False Then
 Form2.Visible = True
  Else
 Form2.Visible = False
  End If
End If
End Sub
Post Reply

Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”