Вопрос

По сути, я хочу написать приложение, которое отобразило бы текущий язык в качестве значка для лотка. В основном я могу кодировать C ++ и C#. Думаю, Google поможет мне, но я хотел бы сначала спросить это здесь, поскольку сообщество, знания здесь - это то, что я доверяю.

(До сих пор никогда не спорят с такими частями системы. Вот почему я хотел бы спросить сообщество.)

Хорошо, благодаря вашей помощи, мне удалось открыть два способа. Используя DllImport в C# (импорт user32.dll) и то InputLanguage.

Нашел фрагмент:

public void SetNewCurrentLanguage() {
    // Gets the default, and current languages.
    InputLanguage myDefaultLanguage = InputLanguage.DefaultInputLanguage;
    InputLanguage myCurrentLanguage = InputLanguage.CurrentInputLanguage;
    textBox1.Text = "Current input language is: " + myCurrentLanguage.Culture.EnglishName + '\n';
    textBox1.Text += "Default input language is: " + myDefaultLanguage.Culture.EnglishName + '\n';

    // Changes the current input language to the default, and prints the new current language.
    InputLanguage.CurrentInputLanguage = myDefaultLanguage;
    textBox1.Text += "Current input language is now: " + myDefaultLanguage.Culture.EnglishName;
}  

Я применил это, как следующее:

        InputLanguage myCurrentLanguage = InputLanguage.CurrentInputLanguage;
        notifyIcon.Text = myCurrentLanguage.LayoutName + '\n' + myCurrentLanguage.Culture.DisplayName;  

Это отображает его, если вы паритете его выше значка. Тем не менее, он не будет обновлять на переключателе и не показывать макет в виде текста в области лотка. Для этого я нашел "Рисунок в vb.net.«Статья, может быть, это поможет мне решить эту проблему. Что касается обнаружения переключения, это хороший вопрос.

Это было полезно?

Решение

Чтобы получить общий язык пользователя, общий язык пользователя, GetUserDefaultUILanguage.

Чтобы получить язык текущего потока, GetThreadUILanguage или GetThreadLocale.

Чтобы получить текущий язык ввода клавиатуры, GetKeyboardLayout.

Чтобы отобразить значок области уведомления в Windows до Windows 7, Shell_NotifyIcon. Анкет В Windows 7. Shell_NotifyIcon Может все еще работать, если пользователь установит соответствующие варианты, но в противном случае вам нужно найти другой способ.

Если у вас есть более чем один возможный язык ввода клавиатуры, Windows уже отображает текущий язык ввода клавиатуры в языковой панели, если только пользователь отключил его. Пользователь может поместить языковую панель в панель задач, хотя он не совсем такой же, как в области уведомления.

Если вы хотите получить уведомления, когда пользователь меняет язык, WM_SETTINGCHANGE может сообщить вам, когда вы должны позвонить SystemParametersInfo Проверять. Я не уверен, есть ли лучший способ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top