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

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

.

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

Попробуй строку твоего кода переписав его на VB
...
Рейтинг: 0 / 0
Изменить раскладку в чужом приложении по хэндлу окна
    #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
Изменить раскладку в чужом приложении по хэндлу окна
    #39948765
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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

Ну так напиши человеку код )
У меня даже VS6 сейчас не стоит, вот выдернул поиском строчку из старых исходников...
...
Рейтинг: 0 / 0
Изменить раскладку в чужом приложении по хэндлу окна
    #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
Изменить раскладку в чужом приложении по хэндлу окна
    #39948887
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо. вам обоим!!! Начал искать значения как Shocker.Pro посоветовал и прямо тут на форуме нашел решение))) переключить раскладку для чужого приложения

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



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

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

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


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