Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменить раскладку в чужом приложении по хэндлу окна / 11 сообщений из 11, страница 1 из 1
18.04.2020, 16:32
    #39948605
DMK67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Есть приложение на VB6. Копирует текст с браузера. Лет 5 уже как. Поставили Windows 7 вместо XP и начался цирк.
Браузер самопроизвольно переключает раскладку на Английский и копируемый текст на кириллице периодически получается в виде вопросительных знаков. Приходится вручную переходить к браузеру, переключать раскладку на русский и запускать по новой.

Нашел вариант смены раскладки чужого приложения На С++ по хэндлу окна.
Код: plaintext
1.
PostMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, INPUTLANGCHANGE_SYSCHARSET, 0x419) // рус.; 0x409 - англ

.

А вот как это сделать на VB6?
...
Рейтинг: 0 / 0
19.04.2020, 01:38
    #39948712
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
DMK67,

Попробуй строку твоего кода переписав его на VB
...
Рейтинг: 0 / 0
19.04.2020, 02:04
    #39948715
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Код: vbnet
1.
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


еще надо объявить константы WM_INPUTLANGCHANGEREQUEST и INPUTLANGCHANGE_SYSCHARSET - их значения гуглятся
...
Рейтинг: 0 / 0
19.04.2020, 15:47
    #39948765
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Shocker.Pro,

Наверное лучше PostMessageW ?
...
Рейтинг: 0 / 0
19.04.2020, 15:58
    #39948772
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Eolt,

Ну так напиши человеку код )
У меня даже VS6 сейчас не стоит, вот выдернул поиском строчку из старых исходников...
...
Рейтинг: 0 / 0
19.04.2020, 22:59
    #39948824
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Как то так наверное


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Option Explicit

Private Const INPUTLANGCHANGE_SYSCHARSET As Long = &H1
Private Const WM_INPUTLANGCHANGEREQUEST  As Long = &H50
Private Declare Function PostMessage Lib "user32" Alias "PostMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub Foo()

  PostMessage hWnd, WM_INPUTLANGCHANGEREQUEST, INPUTLANGCHANGE_SYSCHARSET, &H419

End Sub
...
Рейтинг: 0 / 0
20.04.2020, 11:20
    #39948887
DMK67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Огромное спасибо. вам обоим!!! Начал искать значения как Shocker.Pro посоветовал и прямо тут на форуме нашел решение))) переключить раскладку для чужого приложения

Все воскресенье провеселился, переделывая приложение пятилетней давности под актуальные задачи. На семерке нормально теперь работает. И тут вы ПОМОГЛИ альтернативным вариантом!!!
...
Рейтинг: 0 / 0
08.05.2020, 10:10
    #39955188
ldfanate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
Eolt
Как то так наверное
Код: vbnet
1.
Private Declare Function PostMessage Lib "user32" 



Там наверное ещё SafePtr лучше добавить в современных 64-битных реалиях.
...
Рейтинг: 0 / 0
08.05.2020, 10:14
    #39955190
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
ldfanate,

64-битного компилятора VB6 не существует
...
Рейтинг: 0 / 0
08.05.2020, 11:51
    #39955219
ldfanate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
да просто где VB6 там часто и VBA - а на такие грабли регулярно наступают любители API-вызовы из макросов делать.
...
Рейтинг: 0 / 0
08.05.2020, 12:20
    #39955236
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить раскладку в чужом приложении по хэндлу окна
ldfanate
да просто где VB6 там часто и VBA - а на такие грабли регулярно наступают любители API-вызовы из макросов делать.

А откуда их надо по уму делать?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменить раскладку в чужом приложении по хэндлу окна / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]