|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
подскажите, как определить раскладку АКТИВНОГО окна? в инете не мало таких тем, но все коды, которые нашёл, определяют раскладку окна программы, а не активного окна. Желательно любого активного окна, не зависимо от имени. заранее спс ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2011, 10:53 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
вот мой код Option Explicit ' функция раскладки клавиатуры Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long Private Sub Timer1_Timer() 'интервал любой Dim KeybLayoutName As String KeybLayoutName = String(9, 0) GetKeyboardLayoutName KeybLayoutName If CStr(CLng(Left$(KeybLayoutName, InStr(1, KeybLayoutName, Chr(0)) - 1))) = 409 Then 'Номер 409 - английская Text1.Text = "английская клава" Else '419 - русская Text1.Text = "русская клава" End If End Sub узнаёт раскладку своего окна но не активного... есть у кого идеи?) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2011, 11:36 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
мдя походу ни у кого никаких идей ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2011, 22:02 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
неужели никаких идей... хоть делай снимок экрана и смотри "рус" или "en" там нарисовано) а если серьёзно за 2 дня 42 просмотра и ток мои комменты. полюбэ как-то можно узнать раскладку активного окна... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 15:07 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
big-duke, спс, первый, кто что-нить написАл) из статьи я понял (кажется), что если параметр IdShread = 0, то возвращается раскладка активного окна... А как и в какой части кода можно внести этот параметр? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 17:28 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
big-duke, Уже натыкался на эту статью. тоже говорится, что BelowZeroесли параметр IdShread = 0, то возвращается раскладка активного окна но BelowZeroкак и в какой части кода можно внести этот параметр? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 18:21 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
BelowZero, ThreadLayout = GetKeyboardLayout(0) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 18:46 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long Private Declare Function GetWindowThreadProcessId& Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String) Dim hAppWnd As Long Dim ThreadID As Long Dim ThreadLayout As Long Dim vbNullString hAppWnd = FindWindow(vbNullString, "Безымянный - Блокнот") If hAppWnd = 0 Then MsgBox "нет такого окна" Else ThreadID = GetWindowThreadProcessId(hAppWnd, ByVal 0&) ThreadLayout = GetKeyboardLayout(ThreadID) MsgBox "Ðàñêëàäêà " & Hex(ThreadLayout) End If этот код вроде должен определять раскладку в блокноте, но 1) ругается на vbNullString: Invalid Outside Procedure 2) нужно определять раскладку не определённого окна по имени, а любого активного в данный момент окна 3) совсем запутался с этим IdShread... Буду благодарен за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 19:59 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
BelowZeroInvalid Outside Procedure Перевести? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:03 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
Shocker.Pro, привет!) т.е. Здравствуйте. вы сильно помогли в предыдущих моих трудностях. Очень рад, что вы подключились к этой теме. Shocker.ProПеревести? да, пожалуйста... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:06 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
BelowZeroпривет!) т.е. Здравствуйте. вы сильно помогли в предыдущих моих трудностях. Очень рад, что вы подключились к этой теме. В эту вникать лень, тем более, вроде все разжевано, да и тема эта уже была ранее, поищи BelowZero Shocker.ProПеревести? да, пожалуйста... "Неверно [использовать] вне процедуры" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:10 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
Shocker.Pro, BelowZeroподскажите, как определить раскладку АКТИВНОГО окна В инете обсуждается, как узнать раскладку самого окна(текущего процесса) последний приведённый код узнаёт раскладку по имени приложения. тоже неплохо, но и это не работает... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:13 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
Что-то мне подсказывает, что активное окно можно найти с помощью GetActiveWindow ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:17 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
извините за нубство, но куда GetActiveWindow пихнуть?) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:20 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
BelowZeroизвините за нубство, но куда GetActiveWindow пихнуть?) ну напрягись немножко. Если вместо ПоискаОкна ты хочешь ПолучитьАктивноеОкно.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2011, 20:23 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
Option Explicit Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long Private Declare Function GetWindowThreadProcessId& Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) Private Declare Function GetActiveWindow Lib "user32" () As Long Private Sub Timer1_Timer() Dim hAppWnd As Long Dim ThreadID As Long Dim ThreadLayout As Long Dim vbNullString hAppWnd = GetActiveWindow() ThreadID = GetWindowThreadProcessId(hAppWnd, ByVal 0&) ThreadLayout = GetKeyboardLayout(ThreadID) Text1.Text = "raskladka " & Hex(ThreadLayout) End Sub воть... не возвращает раскладку активного окна... но зато единственный возможный вариант на который компилятор не ругался красиво подобранным комплектом английских слов) а если серьёзно куда его впихнуть чтоб работало? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2011, 18:12 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
ааа помогите буду до часа ночи ждать ответа... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2011, 21:12 |
|
узнать раскладку клавиатуры
|
|||
---|---|---|---|
#18+
BelowZero, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2011, 23:54 |
|
|
start [/forum/topic.php?fid=60&fpage=101&tid=2158690]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 387ms |
total: | 537ms |
0 / 0 |