• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Xác định các phím(đơn) đã được mở hay chưa

Các mẹo vặt linh tinh không thuộc các nhóm trên

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Xác định các phím(đơn) đã được mở hay chưa

Gửi bàigửi bởi tungcan5diop » T.Hai 26/10/2009 11:57 am

Thủ thuật: Xác định các phím(đơn) đã được mở hay chưa
Tác giả: Sưu tầm
Mô tả: Xác định các phím(đơn) đã được mở hay chưa


Xác định các phím(đơn)(NumLock,Insert,CapLock,ScrollLock...) bất kì trên bàn phím đã được bật(tắt) hay chưa bằng API
OnlySoft đã có một bài viết về vấn đề này
http://www.caulacbovb.com/forum/viewtop ... ock#p38292
không dùng API(tất nhiên chỉ hổ trợ được một số phím thôi(NumLock,CapLock,ScrollLock))
còn dùng API thì bắt hết được tất cả các phím
khai báo:

Mã: Chọn hết

  1.  <Runtime.InteropServices.DllImport("User32.dll", CharSet:=Runtime.InteropServices.CharSet.Auto, ExactSpelling:=True)> _
  2.     Friend Shared Function GetKeyState(ByVal KeyCode As Integer) As Short
  3.     End Function

khai báo các hằng số:

Mã: Chọn hết

  1. Const VK_INSERT = &H2D

Mã: Chọn hết

  1. Const VK_NUMLOCK = &H90

các bạn có thể tìm thêm các hằng số của các phím ở đây chỉ minh họa 2 phím thôi
tham khảo ở đây

Mã: Chọn hết

  1. Còn đây là danh sách các hằng cần dùng:
  2. Const VK_LBUTTON = &H1
  3. Const VK_RBUTTON = &H2
  4. Const VK_CANCEL = &H3
  5. Const VK_MBUTTON = &H4
  6. Const VK_BACK = &H8
  7. Const VK_TAB = &H9
  8. Const VK_CLEAR = &HC
  9. Const VK_RETURN = &HD
  10. Const VK_SHIFT = &H10
  11. Const VK_CONTROL = &H11
  12. Const VK_MENU = &H12
  13. Const VK_PAUSE = &H13
  14. Const VK_CAPITAL = &H14
  15. Const VK_ESCAPE = &H1B
  16. Const VK_SPACE = &H20
  17. Const VK_PRIOR = &H21
  18. Const VK_NEXT = &H22
  19. Const VK_END = &H23
  20. Const VK_HOME = &H24
  21. Const VK_LEFT = &H25
  22. Const VK_UP = &H26
  23. Const VK_RIGHT = &H27
  24. Const VK_DOWN = &H28
  25. Const VK_SELECT = &H29
  26. Const VK_PRINT = &H2A
  27. Const VK_EXECUTE = &H2B
  28. Const VK_SNAPSHOT = &H2C
  29. Const VK_INSERT = &H2D
  30. Const VK_DELETE = &H2E
  31. Const VK_HELP = &H2F
  32. Const VK_0 = &H30
  33. Const VK_1 = &H31
  34. Const VK_2 = &H32
  35. Const VK_3 = &H33
  36. Const VK_4 = &H34
  37. Const VK_5 = &H35
  38. Const VK_6 = &H36
  39. Const VK_7 = &H37
  40. Const VK_8 = &H38
  41. Const VK_9 = &H39
  42. Const VK_A = &H41
  43. Const VK_B = &H42
  44. Const VK_C = &H43
  45. Const VK_D = &H44
  46. Const VK_E = &H45
  47. Const VK_F = &H46
  48. Const VK_G = &H47
  49. Const VK_H = &H48
  50. Const VK_I = &H49
  51. Const VK_J = &H4A
  52. Const VK_K = &H4B
  53. Const VK_L = &H4C
  54. Const VK_M = &H4D
  55. Const VK_N = &H4E
  56. Const VK_O = &H4F
  57. Const VK_P = &H50
  58. Const VK_Q = &H51
  59. Const VK_R = &H52
  60. Const VK_S = &H53
  61. Const VK_T = &H54
  62. Const VK_U = &H55
  63. Const VK_V = &H56
  64. Const VK_W = &H57
  65. Const VK_X = &H58
  66. Const VK_Y = &H59
  67. Const VK_Z = &H5A
  68. Const VK_STARTKEY = &H5B
  69. Const VK_CONTEXTKEY = &H5D
  70. Const VK_NUMPAD0 = &H60
  71. Const VK_NUMPAD1 = &H61
  72. Const VK_NUMPAD2 = &H62
  73. Const VK_NUMPAD3 = &H63
  74. Const VK_NUMPAD4 = &H64
  75. Const VK_NUMPAD5 = &H65
  76. Const VK_NUMPAD6 = &H66
  77. Const VK_NUMPAD7 = &H67
  78. Const VK_NUMPAD8 = &H68
  79. Const VK_NUMPAD9 = &H69
  80. Const VK_MULTIPLY = &H6A
  81. Const VK_ADD = &H6B
  82. Const VK_SEPARATOR = &H6C
  83. Const VK_SUBTRACT = &H6D
  84. Const VK_DECIMAL = &H6E
  85. Const VK_DIVIDE = &H6F
  86. Const VK_F1 = &H70
  87. Const VK_F2 = &H71
  88. Const VK_F3 = &H72
  89. Const VK_F4 = &H73
  90. Const VK_F5 = &H74
  91. Const VK_F6 = &H75
  92. Const VK_F7 = &H76
  93. Const VK_F8 = &H77
  94. Const VK_F9 = &H78
  95. Const VK_F10 = &H79
  96. Const VK_F11 = &H7A
  97. Const VK_F12 = &H7B
  98. Const VK_F13 = &H7C
  99. Const VK_F14 = &H7D
  100. Const VK_F15 = &H7E
  101. Const VK_F16 = &H7F
  102. Const VK_F17 = &H80
  103. Const VK_F18 = &H81
  104. Const VK_F19 = &H82
  105. Const VK_F20 = &H83
  106. Const VK_F21 = &H84
  107. Const VK_F22 = &H85
  108. Const VK_F23 = &H86
  109. Const VK_F24 = &H87
  110. Const VK_NUMLOCK = &H90
  111. Const VK_OEM_SCROLL = &H91
  112. Const VK_OEM_1 = &HBA
  113. Const VK_OEM_PLUS = &HBB
  114. Const VK_OEM_COMMA = &HBC
  115. Const VK_OEM_MINUS = &HBD
  116. Const VK_OEM_PERIOD = &HBE
  117. Const VK_OEM_2 = &HBF
  118. Const VK_OEM_3 = &HC0
  119. Const VK_OEM_4 = &HDB
  120. Const VK_OEM_5 = &HDC
  121. Const VK_OEM_6 = &HDD
  122. Const VK_OEM_7 = &HDE
  123. Const VK_OEM_8 = &HDF
  124. Const VK_ICO_F17 = &HE0
  125. Const VK_ICO_F18 = &HE1
  126. Const VK_OEM102 = &HE2
  127. Const VK_ICO_HELP = &HE3
  128. Const VK_ICO_00 = &HE4
  129. Const VK_ICO_CLEAR = &HE6
  130. Const VK_OEM_RESET = &HE9
  131. Const VK_OEM_JUMP = &HEA
  132. Const VK_OEM_PA1 = &HEB
  133. Const VK_OEM_PA2 = &HEC
  134. Const VK_OEM_PA3 = &HED
  135. Const VK_OEM_WSCTRL = &HEE
  136. Const VK_OEM_CUSEL = &HEF
  137. Const VK_OEM_ATTN = &HF0
  138. Const VK_OEM_FINNISH = &HF1
  139. Const VK_OEM_COPY = &HF2
  140. Const VK_OEM_AUTO = &HF3
  141. Const VK_OEM_ENLW = &HF4
  142. Const VK_OEM_BACKTAB = &HF5
  143. Const VK_ATTN = &HF6
  144. Const VK_CRSEL = &HF7
  145. Const VK_EXSEL = &HF8
  146. Const VK_EREOF = &HF9
  147. Const VK_PLAY = &HFA
  148. Const VK_ZOOM = &HFB
  149. Const VK_NONAME = &HFC
  150. Const VK_PA1 = &HFD
  151. Const VK_OEM_CLEAR = &HFE

trích từ
http://www.caulacbovb.com/forum/viewtop ... 66&start=0
cách sử dụng:

Mã: Chọn hết

  1. If ((GetKeyState(VK_INSERT) And 1) > 0) Then
  2.             MessageBox.Show("Insert key")
  3.         Else
  4.             MessageBox.Show("No Insert key")
  5.         End If

Mã: Chọn hết

  1.        If ((GetKeyState(VK_NUMLOCK) And 1) > 0) Then
  2.             MessageBox.Show("Numlock key")
  3.         Else
  4.             MessageBox.Show("No Numlock key")
  5.         End If
  6.  


Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Hàm Kiểm Tra Các Phím Nhấn(mức hệ thống)

Gửi bàigửi bởi tungcan5diop » T.Hai 26/10/2009 3:43 pm

Thủ thuật: Hàm Kiểm Tra Các Phím Nhấn(mức hệ thống)
Tác giả: Phạm Tiên Sinh
Mô tả: Hàm Kiểm Tra Các Phím Nhấn(mức hệ thống)


Mã: Chọn hết

  1.  
  2.  Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Keys) As Integer
  3.  
  4.     Public Function KeyPressed(Optional ByVal Vkey1 As Keys = -1 _
  5.     , Optional ByVal vkey2 As Keys = -1, _
  6.     Optional ByVal vkey3 As Keys = -1, _
  7.     Optional ByVal Vkey4 As Keys = -1) As Boolean
  8.         If (Vkey1  <>-1) Then If GetAsyncKeyState(Vkey1) = 0 Then Return False
  9.         If (vkey2  <>-1) Then If GetAsyncKeyState(vkey2) = 0 Then Return False
  10.         If (vkey3  <>-1) Then If GetAsyncKeyState(vkey3) = 0 Then Return False
  11.         If (Vkey4  <>-1) Then If GetAsyncKeyState(Vkey4) = 0 Then Return False
  12.         Return True
  13.  
  14.     End Function

ví dụ:

Mã: Chọn hết

  1.  If Me.KeyPressed(Keys.RControlKey, Keys.RShiftKey, Keys.Enter, Keys.A) Then
  2.             MsgBox(" Ctrl + Shift + Enter + A Pressed")
  3.         End If

Mã: Chọn hết

  1.  
  2.    If Me.KeyPressed(Keys.A) Then
  3.             MsgBox(" A Pressed")
  4.   End If

các bạn có thể xem chi tiết tại đây,bài viết(rất hay) của bác Phạm Tiên Sinh về vấn đề này bên forum cũ
http://caulacbovb.com/oldforum/viewtopi ... 56&start=0

các bạn có thể vào forum cũ mà tham khảo có rất nhiều vấn đề hay(mà theo cá nhân mình thì hay hơn forum mới)
nếu gặp bài viết hay chủ đề nào hay các bạn có thể chuyển các bài viết đó sang forum mới,ko để mất các bài viết cũ vừa làm tài liệu tham khảo rất bổ ích cho mọi người
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!


Quay về “[.NET] Mẹo vặt khác”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách