コード例 #1
0
 def script_sayCurKeyboardLanguage(self, gesture):
     import winUser
     import scriptHandler
     import ctypes
     import languageHandler
     # Getting the handle of the foreground window.
     curWindow = winUser.getForegroundWindow()
     # Getting the threadID.
     threadID = winUser.getWindowThreadProcessID(curWindow)[1]
     # Getting the keyboard layout iD.
     klID = winUser.getKeyboardLayout(threadID)
     # Extract language ID from klID.
     lID = klID & (2**16 - 1)
     # Getting the current keyboard language description from ctypes.windll.kernel32.GetLocaleInfoW.
     # Some language IDs are not available in the local.windows_locale dictionary, it is best to search their description directly in Windows itself
     buf = ctypes.create_unicode_buffer(1024)
     res = ctypes.windll.kernel32.GetLocaleInfoW(
         lID, languageHandler.LOCALE_SLANGUAGE, buf, 1024)
     desc = buf.value
     defaultOsl = locale.getdefaultlocale()[0]
     repeatCount = scriptHandler.getLastScriptRepeatCount()
     if repeatCount == 0:
         ui.message(desc)
     else:
         ui.message(languageHandler.getLanguageDescription(defaultOsl))
コード例 #2
0
def getKeyboardLayout():
    curWindow = winUser.getForegroundWindow()
    threadID = winUser.getWindowThreadProcessID(curWindow)[1]
    klID = winUser.getKeyboardLayout(threadID)
    lID = klID & (2**16 - 1)
    try:
        localeName = locale.windows_locale[lID]
    except KeyError:
        localeName = None
    return localeName
コード例 #3
0
ファイル: pcKbBrl.py プロジェクト: nvdaes/pcKbBrl
 def getKeyboardLanguage(self):
     # Code borrowed from sayCurrentKeyboardLanguage add-on, by Abdel:
     # https://github.com/abdel792/sayCurrentKeyboardLanguage
     # Getting the handle of the foreground window.
     curWindow = winUser.getForegroundWindow()
     # Getting the threadID.
     threadID = winUser.getWindowThreadProcessID(curWindow)[1]
     # Getting the keyboard layout iD.
     klID = winUser.getKeyboardLayout(threadID)
     # Extract language ID from klID.
     lID = klID & (2**16 - 1)
     return lID
コード例 #4
0
ファイル: __init__.py プロジェクト: nvdaaddons/l10nTest
def isArabicKeyboardLayout():
    """
	Test if the keyboard layout is Arabic to avoid an error reported by a user.
	"""
    import locale
    curWindow = winUser.getForegroundWindow()
    threadID = winUser.getWindowThreadProcessID(curWindow)[1]
    klID = winUser.getKeyboardLayout(threadID)
    lID = klID & (2**16 - 1)
    try:
        localeName = locale.windows_locale[lID]
    except KeyError:
        localeName = None
    if localeName and localeName.startswith("ar_"):
        return True
    return False