Мне нужно изменить язык клавиатуры. с этим кодом я могу изменить язык, если в фокусе приложения:Как изменить язык раскладки клавиатуры в Windows (C++)
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <string>
using namespace std;
#pragma comment(lib, "User32.lib")
int main(int argc, char *argv[])
{
//0409 - Ingles, 0c0a - Espanhol, 0416 - Portugues
char *str = "0c0a";//argv[1];
int i;
if(EOF != sscanf(str, "%x", &i))
{
SendMessage(GetActiveWindow(), WM_INPUTLANGCHANGEREQUEST, 0, i);
}
system("PAUSE");
return EXIT_SUCCESS;
}
, но мне нужно изменить язык системы клавиатуры определенно, после того, как приложение находится близко или если фокус не установлен в приложении.
любой может мне помочь?
Я сомневаюсь, что это возможно. Представьте себе, может ли другое приложение сделать то же самое - кто победит? Это не ваше приложение, которое контролирует язык системы, это пользователь. – Skizz
См. [Этот вопрос] (http://stackoverflow.com/q/9669352/588306), размещенный менее чем за 24 часа до вашего ответа – Deanna
Я даже не уверен, что существует «язык системной клавиатуры»; это похоже на настройку для каждого процесса. BTW, 'WM_INPUTLANGCHANGEREQUEST' - это сообщение из Windows (ОС), чтобы сообщить программе, что пользователь хочет изменить язык ввода; это не поддерживаемый способ для программ делать запросы к другим программам. – MSalters