Показать полную графическую версию : [решено] Узнать язык раскладки клавиатуры
Необходимо получить информацию о текущем языке ввода данных с клавиатуры. Можно это как-нибудь организовать?
получить информацию о текущем языке ввода данных с клавиатуры »
- у каждого окна/приложения может быть свой язык ввода;
- AFAIK CMD (без сторонних инструментов на API32/.NET) не имеет доступа к такой инфе
P.S. язык ввода Windows по умолчанию (нового окна) можно взять с реестра (HKCU\Keyboard Layout\Preload\1)
amel27, тогда уточню: язык ввода для активного окна.
язык ввода для активного окна »
код батника, который компилирует требуемый EXE (требуется .NET):
@if not exist "%~n0.exe" (
for /f "delims=" %%a in ('dir/s/a-d/b/od "%windir%\Microsoft.NET\Framework\vbc.exe"') do @set "vbc=%%a"
(echo Imports System.Runtime.InteropServices
echo Module Test
echo ^<DllImport^("user32.dll",SetLastError:=True^)^> Public Function GetForegroundWindow^(^) As IntPtr
echo End Function
echo ^<DllImport^("user32.dll",SetLastError:=True^)^> Public Function GetWindowThreadProcessId^(ByVal hwnd As IntPtr,ByRef lpdwProcessId As Integer^) As Integer
echo End Function
echo Public Declare Function GetKeyboardLayout Lib "user32" ^(ByVal idThread As UInteger^) As IntPtr
echo Sub Main^(^)
echo Console.WriteLine^(GetKeyboardLayout^(GetWindowThreadProcessId^(GetForegroundWindow^(^),0^)^).ToStri ng^("X"^)^)
echo End Sub
echo End Module)>"%~n0.tmp"
call "%%vbc%%" "%~n0.tmp" /out:"%~n0.exe">nul
del "%~n0.tmp")
P.S. проверено на XP/2003
а что этот exe должен делать?
выдает всегда 4190419
W7U
а что этот exe должен делать? »
выдавать кодировку активного в данный момент окна (4190419/4090409)
@echo off
:loop
test.exe
ping -n 3 127.0.0.1>Nul
goto:loop
а выловить alt+shift не выйдет?
выловить alt+shift не выйдет? »
- потребуется отловить ВСЕ нажатия;
- может быть ctrl+shift;
- AFAIK для установки хука (на чужое окно) потребуются админские права + отключение UAC
amel27, слишком сложно на мой взгляд. Ну да ладно...
Ставлю отметку о решении проблемы.
слишком сложно на мой взгляд. »
проще только использовать сторонние CMD-утилиты, сходу не нашел
вероятно, проще написать... но это уже в другую ветку (программирование), либо AutoIT/AHK
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.