thaicosmic.com

หนัง

วันศุกร์ที่ 24 พฤษภาคม พ.ศ. 2556

VBA สำหรับภาษาของ KeyBoard

Attribute VB_Name = "Module1"
Option Compare Database
Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" _
(ByVal pwszKLID As String, ByVal flags As Long) As Long
'ประกาศฟังชั่น LoadKeyboardLayout  โดยเรียกใช้ฟังชั่น  LoadKeyboardLayoutA ซึ่งเป็นฟังชั่นภายในของ DLL ที่ชื่อ user32
'สำหรับเปลี่ยนภาษาของ KeyBoard ให้เปลี่ยนไปตามที่เราต้องการ
Public Const Thai = "0000041E"
Public Const English = "00000409"

Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Function End_Work_Quit()
Dim retvalue As Variant
On Error GoTo Err_Del:
    retvalue = MsgBox("Click OK เพื่อยืนยัน จบการทำงานและออกจากโปรแกรมฯ !!!?!!!", vbOKCancel + vbDefaultButton2, "เลิกงาน")
       Select Case retvalue
          Case 1
                DoCmd.Quit acQuitSaveAll
          Case Else
       End Select
Exit Function
Err_Del:
                MsgBox Err.Description, vbCritical, "Error"
End Function




'สำหรับอ่านภาษาของ KeyBoard ว่าตอนนี้เป็นภาษาอะไร?
Public Function FindTheardlanguage()

Dim TheardId As Long
Dim TheardLang As Long

    TheardId = get_threadId 'เรียกใช้ฟังชัน get_threadId
    TheardLang = GetKeyboardLayout(ByVal TheardId)
    TheardLang = TheardLang Mod 10000
   
  Select Case TheardLang
   Case 9721 'ตอนนี้คีย์บอร์ดเป็นภาษาอังกฤษ
    FindTheardlanguage = English ' msgbox TheardLang = " & TheardLang
   
   Case 5998 'ตอนนี้คีย์บอร์ดเป็นภาษาไทย
  FindTheardlanguage = Thai 'msgbox TheardLang = " & TheardLang
   
'   Case Else 'คีย์บอร์เป็นภาษาอื่นๆ
'FindTheardlanguage = UnKnow ' msgbox TheardLang = " & TheardLang
   
  End Select
   
End Function