В основном я хочу написать приложение, которое отображало бы текущий язык в виде иконки в трее. В основном я могу кодировать 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;
Отображается, если вы наводите курсор над значком. Однако он не будет обновляться при переключении и не будет отображать макет в виде текста в области уведомлений. Для этого я нашел статью " Drawing in VB.NET ", возможно, это поможет мне решить эту проблему. О переключателе обнаружения, это хороший вопрос.