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

Các điều hành viên: tungcan5diop, QUANITGROBEST

Đăng trả lời
Hình đại diện của thành viên
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: Thứ 4 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 27 times

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

Gửi bài by tungcan5diop »

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 tất cả

  <Runtime.InteropServices.DllImport("User32.dll", CharSet:=Runtime.InteropServices.CharSet.Auto, ExactSpelling:=True)> _    Friend Shared Function GetKeyState(ByVal KeyCode As Integer) As Short    End Function
khai báo các hằng số:

Mã: Chọn tất cả

 Const VK_INSERT = &H2D

Mã: Chọn tất cả

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 tất cả

Còn đây là danh sách các hằng cần dùng:Const VK_LBUTTON = &H1Const VK_RBUTTON = &H2Const VK_CANCEL = &H3Const VK_MBUTTON = &H4Const VK_BACK = &H8Const VK_TAB = &H9Const VK_CLEAR = &HCConst VK_RETURN = &HDConst VK_SHIFT = &H10Const VK_CONTROL = &H11Const VK_MENU = &H12Const VK_PAUSE = &H13Const VK_CAPITAL = &H14Const VK_ESCAPE = &H1BConst VK_SPACE = &H20Const VK_PRIOR = &H21Const VK_NEXT = &H22Const VK_END = &H23Const VK_HOME = &H24Const VK_LEFT = &H25Const VK_UP = &H26Const VK_RIGHT = &H27Const VK_DOWN = &H28Const VK_SELECT = &H29Const VK_PRINT = &H2AConst VK_EXECUTE = &H2BConst VK_SNAPSHOT = &H2CConst VK_INSERT = &H2DConst VK_DELETE = &H2EConst VK_HELP = &H2FConst VK_0 = &H30Const VK_1 = &H31Const VK_2 = &H32Const VK_3 = &H33Const VK_4 = &H34Const VK_5 = &H35Const VK_6 = &H36Const VK_7 = &H37Const VK_8 = &H38Const VK_9 = &H39Const VK_A = &H41Const VK_B = &H42Const VK_C = &H43Const VK_D = &H44Const VK_E = &H45Const VK_F = &H46Const VK_G = &H47Const VK_H = &H48Const VK_I = &H49Const VK_J = &H4AConst VK_K = &H4BConst VK_L = &H4CConst VK_M = &H4DConst VK_N = &H4EConst VK_O = &H4FConst VK_P = &H50Const VK_Q = &H51Const VK_R = &H52Const VK_S = &H53Const VK_T = &H54Const VK_U = &H55Const VK_V = &H56Const VK_W = &H57Const VK_X = &H58Const VK_Y = &H59Const VK_Z = &H5AConst VK_STARTKEY = &H5BConst VK_CONTEXTKEY = &H5DConst VK_NUMPAD0 = &H60Const VK_NUMPAD1 = &H61Const VK_NUMPAD2 = &H62Const VK_NUMPAD3 = &H63Const VK_NUMPAD4 = &H64Const VK_NUMPAD5 = &H65Const VK_NUMPAD6 = &H66Const VK_NUMPAD7 = &H67Const VK_NUMPAD8 = &H68Const VK_NUMPAD9 = &H69Const VK_MULTIPLY = &H6AConst VK_ADD = &H6BConst VK_SEPARATOR = &H6CConst VK_SUBTRACT = &H6DConst VK_DECIMAL = &H6EConst VK_DIVIDE = &H6FConst VK_F1 = &H70Const VK_F2 = &H71Const VK_F3 = &H72Const VK_F4 = &H73Const VK_F5 = &H74Const VK_F6 = &H75Const VK_F7 = &H76Const VK_F8 = &H77Const VK_F9 = &H78Const VK_F10 = &H79Const VK_F11 = &H7AConst VK_F12 = &H7BConst VK_F13 = &H7CConst VK_F14 = &H7DConst VK_F15 = &H7EConst VK_F16 = &H7FConst VK_F17 = &H80Const VK_F18 = &H81Const VK_F19 = &H82Const VK_F20 = &H83Const VK_F21 = &H84Const VK_F22 = &H85Const VK_F23 = &H86Const VK_F24 = &H87Const VK_NUMLOCK = &H90Const VK_OEM_SCROLL = &H91Const VK_OEM_1 = &HBAConst VK_OEM_PLUS = &HBBConst VK_OEM_COMMA = &HBCConst VK_OEM_MINUS = &HBDConst VK_OEM_PERIOD = &HBEConst VK_OEM_2 = &HBFConst VK_OEM_3 = &HC0Const VK_OEM_4 = &HDBConst VK_OEM_5 = &HDCConst VK_OEM_6 = &HDDConst VK_OEM_7 = &HDEConst VK_OEM_8 = &HDFConst VK_ICO_F17 = &HE0Const VK_ICO_F18 = &HE1Const VK_OEM102 = &HE2Const VK_ICO_HELP = &HE3Const VK_ICO_00 = &HE4Const VK_ICO_CLEAR = &HE6Const VK_OEM_RESET = &HE9Const VK_OEM_JUMP = &HEAConst VK_OEM_PA1 = &HEBConst VK_OEM_PA2 = &HECConst VK_OEM_PA3 = &HEDConst VK_OEM_WSCTRL = &HEEConst VK_OEM_CUSEL = &HEFConst VK_OEM_ATTN = &HF0Const VK_OEM_FINNISH = &HF1Const VK_OEM_COPY = &HF2Const VK_OEM_AUTO = &HF3Const VK_OEM_ENLW = &HF4Const VK_OEM_BACKTAB = &HF5Const VK_ATTN = &HF6Const VK_CRSEL = &HF7Const VK_EXSEL = &HF8Const VK_EREOF = &HF9Const VK_PLAY = &HFAConst VK_ZOOM = &HFBConst VK_NONAME = &HFCConst VK_PA1 = &HFDConst VK_OEM_CLEAR = &HFE
trích từ
http://www.caulacbovb.com/forum/viewtop ... 66&start=0
cách sử dụng:

Mã: Chọn tất cả

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

Mã: Chọn tất cả

        If ((GetKeyState(VK_NUMLOCK) And 1) > 0) Then            MessageBox.Show("Numlock key")        Else            MessageBox.Show("No Numlock key")        End If 
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 thành viên
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: Thứ 4 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 27 times

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

Gửi bài by tungcan5diop »

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 tất cả

  Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Keys) As Integer     Public Function KeyPressed(Optional ByVal Vkey1 As Keys = -1 _    , Optional ByVal vkey2 As Keys = -1, _    Optional ByVal vkey3 As Keys = -1, _    Optional ByVal Vkey4 As Keys = -1) As Boolean        If (Vkey1  <>-1) Then If GetAsyncKeyState(Vkey1) = 0 Then Return False        If (vkey2  <>-1) Then If GetAsyncKeyState(vkey2) = 0 Then Return False        If (vkey3  <>-1) Then If GetAsyncKeyState(vkey3) = 0 Then Return False        If (Vkey4  <>-1) Then If GetAsyncKeyState(Vkey4) = 0 Then Return False        Return True     End Function
ví dụ:

Mã: Chọn tất cả

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

Mã: Chọn tất cả

    If Me.KeyPressed(Keys.A) Then            MsgBox(" A Pressed")  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!
Đăng trả lời

Quay về