Sto scrivendo un'applicazione che richiede di cambiare la lingua del sistema quando l'applicazione stessa è NON MESSA A FUOCO. Ho paura che l'unico modo per farlo è utilizzando il gancio di Windows che non riesco a capire appieno al momento. qualche pensiero?Modifica lingua di sistema C#
EDIT: Soluzione
[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));
}
Intendi dire che una particolare applicazione richiede che la lingua del sistema sia cambiata da quella che generalmente l'utente non usa? –
Il problema è sapere quando non si è a fuoco o cambiare la lingua del sistema? –
Cambiare la lingua richiede un login/logout ... intendi l'inserimento della lingua? – vcsjones