• 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

Hỏi cách tắt và mở phím NumLock = code

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

Moderator: tungblt

ghienVB
Thành viên chính thức
Thành viên chính thức
Posts: 35
Joined: Thu 17/07/2008 12:40 am

Hỏi cách tắt và mở phím NumLock = code

Postby ghienVB » Sat 21/05/2011 10:12 pm

Cho mình hỏi cách tắt và mở phím NumLock = code.
Cảm ơn!



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

Re: Hỏi cách tắt và mở phím NumLock = code

Postby Mars » Sun 22/05/2011 8:11 am

bạn vào vblib xem hàm GetAsyncKeyState
mà mình nhớ trong phần thủ thuật vblib có mà

User avatar
andylam1992
Thành viên danh dự
Thành viên danh dự
Posts: 380
Joined: Mon 06/04/2009 12:57 pm
Location: TP.HCM Q5
Has thanked: 2 times
Been thanked: 4 times
Contact:

Re: Hỏi cách tắt và mở phím NumLock = code

Postby andylam1992 » Sun 22/05/2011 8:22 am

thử cái này xem: http://caulacbovb.com/vblib/vblib.php trong đó phím NUM LOCK = {NUMLOCK}

不相信未作牺牲竟先可拥有
只相信是靠双手找到我欲求
Cần - Kiệm- Liêm(liêm kiết) - Nghĩa - Chí - Tín

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: Hỏi cách tắt và mở phím NumLock = code

Postby VuVanHoanh » Sun 22/05/2011 8:42 am

Dùng khiển
Since 2008...
One love! :x

ghienVB
Thành viên chính thức
Thành viên chính thức
Posts: 35
Joined: Thu 17/07/2008 12:40 am

Re: Hỏi cách tắt và mở phím NumLock = code

Postby ghienVB » Sun 22/05/2011 8:48 am

cảm ơn các bạn, mình đã tìm trong vblib trước khi đặt câu hỏi và các bạn hồi đáp, tuy nhiên chưa đúng yêu câu sử dụng và mình muốn hỏi thêm:
- khi mình dùng lệnh SendKeys thì sau vài tác vụ lập lại phím NumLock bị tắt, mình muốn nó luôn ở trạng mở thì phải viết code làm sao?

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: Hỏi cách tắt và mở phím NumLock = code

Postby VuVanHoanh » Mon 23/05/2011 8:02 am

Bạn dùng GetAsyncKeyState để kiểm tra xem nút Numlock có được bật không. Nếu chưa được thì SendKeys "{NUMLOCK}". Đặt code trên trong timer hoặc bắt mấy sự kiện GotFocus là OK.
Since 2008...
One love! :x

User avatar
meocondethuong
Thành viên năng nổ
Thành viên năng nổ
Posts: 75
Joined: Sun 28/02/2010 11:14 pm
Has thanked: 1 time
Been thanked: 2 times

Re: Hỏi cách tắt và mở phím NumLock = code

Postby meocondethuong » Wed 25/05/2011 11:08 am

- Mình tìm thấy cái này, chạy rất tồt! bạn test xem !!
:)

Code: Select all

'Thiết kế 1 Timer trên form, đặt Interval = 1:

Private Sub Timer1_Timer()
           ToggleNumLock (True) 'True mean turn on
End Sub

'chép code dưới đây đặt vào 1 moudle:

Option Explicit

Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type

' API declarations:

Private Declare Function GetVersionEx Lib "kernel32" _
   Alias "GetVersionExA" _
   (lpVersionInformation As OSVERSIONINFO) As Long

Private Declare Sub keybd_event Lib "user32" _
   (ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
   
Private Declare Function GetKeyboardState Lib "user32" _
   (pbKeyState As Byte) As Long

Private Declare Function SetKeyboardState Lib "user32" _
   (lppbKeyState As Byte) As Long
Public Sub ToggleNumLock(TurnOn As Boolean)
 
    'To turn numlock on, set turnon to true
    'To turn numlock off, set turnon to false
   
      Dim bytKeys(255) As Byte
      Dim bnumLockOn As Boolean
     
     
'Get status of the 256 virtual keys
      GetKeyboardState bytKeys(0)
     
      bnumLockOn = bytKeys(VK_NUMLOCK)
      Dim typOS As OSVERSIONINFO
     
      If bnumLockOn <> TurnOn Then 'if current state <>
                                     'requested stae
       
       If typOS.dwPlatformId = _
           VER_PLATFORM_WIN32_WINDOWS Then  '=== Win95/98

          bytKeys(VK_NUMLOCK) = 1
          SetKeyboardState bytKeys(0)

        Else    '=== WinNT/2000

        'Simulate Key Press
          keybd_event VK_NUMLOCK, &H45, _
             KEYEVENTF_EXTENDEDKEY Or 0, 0
        'Simulate Key Release
          keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY _
             Or KEYEVENTF_KEYUP, 0
        End If

      End If
   
End Sub


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

Who is online

Users browsing this forum: No registered users and 27 guests