Estoy escribiendo una aplicación que necesito para cambiar el idioma del sistema cuando la aplicación en sí es NO ENFOCADO. Me temo que la única forma de hacerlo es mediante el uso de Windows hook que no puedo entender del todo en este momento. alguna idea?Cambiando el idioma del sistema C#
EDIT: Solución
[DllImport("user32.dll")]
private static extern bool PostMessage(int hhwnd, uint msg, IntPtr wparam, IntPtr lparam);
[DllImport("user32.dll")]
private static extern IntPtr LoadKeyboardLayout(string pwszKLID, uint Flags);
private static uint WM_INPUTLANGCHANGEREQUEST = 0x0050;
private static int HWND_BROADCAST = 0xffff;
private static string en_US = "00000409";
private static uint KLF_ACTIVATE = 1;
private static void ChangeLanguage()
{
PostMessage(HWND_BROADCAST,WM_INPUTLANGCHANGEREQUEST, IntPtr.Zero ,LoadKeyboardLayout(en_US,KLF_ACTIVATE));
}
¿Quiere decir que una aplicación en particular requiere que se cambie el idioma del sistema del que el usuario generalmente no usa? –
¿El problema es saber cuándo no está enfocado o cambiar el idioma del sistema? –
Cambiar el idioma requiere un inicio/cierre de sesión ... ¿se refiere a la entrada de idioma? – vcsjones